我已经按照http://railscasts.com/episodes/370-ransack?view=asciicast设置了 Ransack,并且使用 orders#index 控制器搜索 Orders 表中的大多数列都可以正常工作。
但是,它不会搜索 orderable_type 或 orderable_id,这两列存储与其他模型的多态关联。有谁知道为什么,或者如何解决这个问题?
模型:
class Order < ActiveRecord::Base
attr_accessible :quantity
belongs_to :orderable, polymorphic: true
belongs_to :delivery
belongs_to :requisition
控制器:
def index
@search = Order.search(params[:q])
@orders = @search.result
end
看法:
= search_form_for @search do |f|
.field
= f.label :orderable_type_matches, "Type"
= f.text_field :orderable_type_matches
.field
= f.label :created_at_gteq, "Created between"
= f.text_field :created_at_gteq, 'data-behaviour' => 'datepicker'
= f.label :created_at_lteq, "and"
= f.text_field :created_at_lteq, 'data-behaviour' => 'datepicker'
.actions
= f.submit "Search"
我收到的错误是:
未初始化的常量 Order::Orderable 提取的源代码(大约第 13 行):
10:= f.text_field:location_place_matches 11:.field 12:= f.label:orderable_type_matches,“类型”13:= f.text_field:orderable_type_matches 14:.field 15:= f.label:created_at_gteq,“创建于”16 : = f.text_field :created_at_gteq, '数据行为' => 'datepicker'
对于我的生活,我不明白为什么它对待 orderable_type 与所有其他列不同 - 任何人都可以帮忙解决吗?