非常简单的Rails Active-Record Associations问题

时间:2011-07-22 11:41:29

标签: ruby-on-rails associations

我有2个型号:

class Mission < ActiveRecord::Base
    belongs_to :category
end

class Category < ActiveRecord::Base
    has_many :missions
end

我有一个复杂的Mission发现声明:

@missions = Mission.send(@view, level).send(@show).search(@search).paginate :page => params[:page], :order => actual_sort, :per_page => 50

我想在我的查询中添加搜索特定类别的可能性。 我尝试了这个,但它不起作用:

@missions = Mission.send(@view, level).send(@show).send(:category, @category).search(@search).paginate :page => params[:page], :order => actual_sort, :per_page => 50

Rails说Mission没有.category方法。你会如何解决这个问题?

谢谢, 奥古斯托

2 个答案:

答案 0 :(得分:0)

尝试在category_id上执行where选择

答案 1 :(得分:0)

OH ......我......上帝

你确定这是最好的方法吗?

如果你不再解释一下,我认为人们不会帮助你,但我非常怀疑你不能这样写你的陈述:

@missions = Mission.select("missions.level ...,category.attr ...").where(["missions.level = ? ...", level ...]).includes(:category).where(["categories.field = ?", ...]).paginate(...)

显然,elipses(...)通常意味着等等。

这是我的一个测试项目的工作示例:

i = Item.where("items.name like '%Coupon%'").includes(:category).where(["categories.name = ? ",'Category 2'])