Tag: activerecord

在Rails模型中不区分大小写的search

我的产品型号包含一些项目 Product.first => #<Product id: 10, name: "Blue jeans" > 我现在正在从另一个数据集中导入一些产品参数,但是名称的拼写有些不一致。 例如,在其他数据集中, Blue jeans可以拼成Blue Jeans 。 我想要Product.find_or_create_by_name("Blue Jeans") ,但这将创造一个新的产品,几乎相同的第一个。 如果我想查找和比较小写的名字,我有什么select。 性能问题在这里并不重要:只有100-200个产品,我想将其作为导入数据的迁移来运行。 有任何想法吗?

如何在Arel和Rails中做一个LIKE查询?

我想做一些事情: SELECT * FROM USER WHERE NAME LIKE '%Smith%'; 我在Arel的尝试: # params[:query] = 'Smith' User.where("name like '%?%'", params[:query]).to_sql 但是,这变成: SELECT * FROM USER WHERE NAME LIKE '%'Smith'%'; Arel正确地包装查询string“Smith”,但是因为这是一个LIKE语句,所以它不起作用。 在Arel中如何做一个LIKE查询? PS奖金 – 我实际上试图扫描表中的两个字段,名称和说明,以查看是否有任何匹配的查询。 这将如何工作?

使用活动loggingsearch序列化的数据

我试图做一个序列化列的简单查询,你怎么做到这一点? serialize :mycode, Array 1.9.3p125 :026 > MyModel.find(104).mycode MyModel Load (0.6ms) SELECT `mymodels`.* FROM `mymodels` WHERE `mymodels`.`id` = 104 LIMIT 1 => [43565, 43402] 1.9.3p125 :027 > MyModel.find_all_by_mycode("[43402]") MyModel Load (0.7ms) SELECT `mymodels`.* FROM `mymodels` WHERE `mymodels`.`mycode` = '[43402]' => [] 1.9.3p125 :028 > MyModel.find_all_by_mycode(43402) MyModel Load (1.2ms) SELECT `mymodels`.* FROM `mymodels` WHERE `mymodels`.`mycode` = […]

如何用ActiveRecord / RailsexpressionNOT IN查询?

只是为了更新这个,因为似乎很多人都这样认为,如果您使用Rails 4,请查看TrungLê和VinniVidiVicci的答案。 Topic.where.not(forum_id:@forums.map(&:id)) Topic.where(published:true).where.not(forum_id:@forums.map(&:id)) 我希望有一个简单的解决scheme,不涉及find_by_sql ,如果不是那么我想这将不得不工作。 我发现这篇文章引用了这个: Topic.find(:all, :conditions => { :forum_id => @forums.map(&:id) }) 这是一样的 SELECT * FROM topics WHERE forum_id IN (<@forum ids>) 我想知道是否有办法不这样做,如: SELECT * FROM topics WHERE forum_id NOT IN (<@forum ids>)

ActiveRecord中的随机logging

我需要通过ActiveRecord从表中获取一个随机logging。 我从2006年开始跟踪Jamis Buck的例子。 不过,我也通过Googlesearchfind另一种方式(由于新的用户限制,不能使用链接进行属性设置): rand_id = rand(Model.count) rand_record = Model.first(:conditions => ["id >= ?", rand_id]) 我很好奇这里的其他人如何做到这一点,或者如果有人知道什么方法会更有效率。

ActiveRecord:大小vs计数

在Rails中,您可以使用Model.size和Model.countfindlogging的数量。 如果你正在处理更复杂的查询,那么使用其中一种方法会有什么好处? 他们有什么不同? 例如,我有用户的照片。 如果我想显示一张用户表格和他们有多less照片,将会运行user.photos.size许多实例比user.photos.count更快或更慢。 谢谢!

连接Rails 3.1与多个数据库

在ShowNearby中,我们一直在从PHP迁移到RoR 3.1,我们正面临一些可能是你之前解决的一些问题。 我们有大量的数据,我们决定把我们的数据库分成几个数据库,我们可以分别处理。 例如,我们的账户,地点,日志和其他信息被分成几个数据库 我们需要迁移,装置,模型,发挥很好,到目前为止,它已经相当混乱。 我们对于解决scheme的一些要求是可以接受的: 一个模型应该与其中一个数据库中的一个表相关。 rake db:drop – 应该删除我们在database.yml中指定的所有数据库env rake db:create – 应该创build我们在database.yml中指定的所有数据库env rake db:migrate – 应该运行迁移到各种数据库 耙db:testing – 应抓住夹具,并将其放入各种数据库和testing单位/function/等 我们正在考虑为每个数据库设置单独的rails项目,并将它们与ActiveResource连接起来,但是我们觉得这样做效率不高。 有没有人处理过类似的问题? 非常感谢!!

Rails的ActiveRecord之间的date

我需要查询一天内发表的评论。 该字段是标准时间戳的一部分,是created_at。 所选date来自date_select。 我怎样才能使用ActiveRecord来做到这一点? 我需要像这样的东西: "SELECT * FROM comments WHERE created_at BETWEEN '2010-02-03 00:00:00' AND '2010-02-03 23:59:59'"

Rails 4的范围是find没有孩子的父母

我发现一个答案有一些可用的例子,可以find有n孩子的父母,但是find没有孩子的父母也是一样(大概是因为join排除了他们)。 scope :with_children, joins(:children).group("child_join_table.parent_id").having("count(child_join_table.parent_id) > 0") 任何人都可以指向正确的方向吗?

ActiveRecord或查询

你如何在Rails 3 ActiveRecord中进行OR查询。 我find的所有例子都只有AND查询。 编辑: OR方法是可用的自Rails 5.请参阅ActiveRecord :: QueryMethods