我正在使用Ransack gem为我的表创建一个过滤器表单。
在我的控制器中(我从另一个表中获取过滤器选项): homeworks_controller:
... @q = Homework.search(params[:q])
@sub = Homework.find_by_sql("SELECT subject FROM classmodules GROUP BY subject").map &:subject
@q.build_condition if @q.conditions.empty?
@q.build_sort if @q.sorts.empty?
...
在我看来
<%= search_form_for @q do |f| %>
<%= f.select :subject_eq, @sub %>
<%= f.submit %>
<% end %>
模型
classmodule.rb
has_many :homeworks, :class_name => 'Homework'
homework.rb
belongs_to :classmodule, :class_name => 'Classmodule', :foreign_key => :subject
我得到nil:NilClass的“undefined method`name'作为错误。
我搜索了一个答案,但没有什么可靠的,并尝试了一些建议的解决方案。我被卡住了,有什么想法吗?感谢