我有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方法。你会如何解决这个问题?
谢谢, 奥古斯托
答案 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'])