activerecord-relation
全部标签 我试图让Rails应用程序的最终用户根据任意列的值限制结果。在最简单的情况下,我想做一些大致相当于:"SELECT*FROMproductsWHERE(#{params[:min_col]}>=#{params[:min]})"没有注入(inject)漏洞。例如,example.com/myapp/catalog?min_col=sell_price&min=300将返回sell_price大于或等于$3.00的所有产品我尝试将这样的范围添加到模型中:->(column,min){where("?>=?",column,min)}并将uri参数传递给该范围,但这会产生WHERE('se
RubyonRails4-将ActiveRecord字符串列排序为float。我有一个带有版本列(字符串)的RecordModel表,用于存储版本。版本超过格式major.minorversion。问题是一个版本将从9.0跳到10.0,但是因为它存储为字符串,所以我如何像整数一样对它进行排序?RecordModel(id:integer,version:string,created_at:datetime,updated_at:datetime)create_table"record_models",force:truedo|t|t.string"version"t.datetime"
我有一个user模型的脚手架,它有一个name属性。索引看起来像这样:我想做一个查询,只查找名称以“Mr”的两个字母开头的第一个记录。因此,对于上面的内容,它将返回名称为“MrBar”的记录。我知道它可能看起来很接近这个:User.find_by(name:name[0].concat(name[1])=="Mr")#doesn'twork 最佳答案 可以使用where方法获取名字以“Mr”开头的Users,first获取查询的第一个结果User.where("namelike?","Mr%").first
我有一个ActiveRecord对象用户。在我正在制作的应用程序中,我在gem上使用单点登录,但我需要将一些用户数据保存在我们的数据库中。我的ApplicationController有这段代码:defcreate_userUser.create(name:current_user['name'],email:current_user['email'],company_id:current_user['id'])end我需要一个模拟实际create调用的RSpec测试。我试过了allow_any_instance_of(User).toreceive(:create).with(any
我有两个事件记录模型classUser我想从activerecord关联中获取类Post的引用。user.posts.get_object_class目前我做的时候user.posts.class.to_s#Post::ActiveRecord_Associations_CollectionProxy有没有一种方法可以获取Post而不必“拆分”“::”上的字符串然后将其常量化? 最佳答案 使用model或klass属性-它将返回您要查找的常量:user.posts.model#=>Postuser.posts.klass#=>Pos
我对Ruby如何执行查询感到困惑:假设我们有两种方法:defmeet1user=User.allend每次我调用这个方法时,我都会运行一个查询,上面写着:'UserLoad(18.3ms)SELECT"users".*FROM"users"INNERJOIN"roles"ON"roles"."user_id"="users"."id"WHERE"users"."banned"='f'AND"roles"."description"='gogetter''这意味着它查询用户...假设我有另一种方法:defmeet2user=User.alluser.to_sqlend当我调用它时,它返回
我正在尝试将一些基本的报告屏幕放在一起。我将一些相当复杂的SQL查询输入到ActiveRecord的find_by_sql方法中。我在这里遇到的问题是我丢失了原始查询中给出的列顺序。我假设这是因为Hash类不保留其键的输入顺序。这个问题有办法解决吗?我应该使用与find_by_sql不同的方法来查询吗? 最佳答案 我喜欢用Ruport报告。它具有良好的ActiveRecord集成,它使您能够控制列顺序和几乎所有其他内容。而且它使用起来非常简单,我认为即使对于“基本”报告也不过分。 关于s
我正在寻找有关如何在没有ActiveRecord的情况下编写RailsWeb应用程序的任何指示。非常感谢使用关系数据库以外的存储后端的文档或(不太复杂的)网络应用程序示例。为了使Rails应用程序在没有ActiveRecord层的情况下工作,尚不清楚应该在模型类中实现什么。谢谢, 最佳答案 当然可以,比如这里使用MongoMapper代替ActiveRecord:http://railstips.org/blog/archives/2009/07/23/getting-started-with-mongomapper-and-rai
我最近将一个旧的Rails2.3应用程序(Ruby1.8.7)升级到了Rails3.2/Ruby1.9.3。使用ActiveRecord序列化并尝试访问序列化属性时,我得到:ActiveRecord::AttributeMethods::Serialization::Attributereturned..unserializethenreturnstheactualvalue.真正奇怪的是,有一些模型具有正常行为。有人可以帮助我吗? 最佳答案 我现在知道这个问题是什么时候发生的,但我仍然不知道为什么:这个有效:User选项返回{}如
我在此处代码的第2行出错,我在Estate表中有一列user_id。我在这里做错了什么?myestate=Estate.where(:Mgmt=>current_user.Company)@managements=User.where(:id=>myestate.user_id) 最佳答案 where返回ActiveRecord::Relation目的。因为where(:mgmt=>current_user.company)可能返回0、1或许多记录,所以您必须告诉查询您想要从中得到什么。尝试:myestate=Estate.wher