我grouped_collection_select
想将显示的记录限制为未关闭的任务。我可以轻松过滤在集合列表的 opt 组中显示的记录。但是,我无法过滤选项级别记录(group_method)。
这是在我的任务模型中:
scope :tasknotclosed, where("taskstatus_id != (?)", 3)
这是当前的选择:
<%= f.grouped_collection_select :task_id, Workorder.wonotclosed.order(:description), :tasks, :description, :id, :taskname, :include_blank => 'Select:' %>
而不是:tasks
,我想使用类似的东西Task.tasknotclosed.all
但是,这给了我:
syntax error, unexpected '['
谢谢您的帮助!
更新 1
我尝试将其添加到任务模型中:
def tasknotclosed?
self.taskstatus_id != 3
end
并将选择更改为:
<%= grouped_collection_select(:tasks, :task_id, Workorder.wonotclosed.order(:id), :task.tasknotclosed?, :description, :id, :taskname, :include_blank => true) %>
但我得到:
undefined method `tasknotclosed?' for :task:Symbol
更新2
我将“事件”表单中的选择更改为:
<%= f.grouped_collection_select :task_id, @workorderlist, @tasklist, :description, :id, :taskname, :include_blank => 'Select:' %>
事件控制器对此:
def new
@event = Event.new
@tasklist = Task.where("showtimer == (?)", true).order(:taskname)
@workorderlist = Workorder.where("wostatus_id != (?)", 15).order(:description)
@workorderlist
按我预期的方式工作。
但是,@tasklist 给了我
syntax error, unexpected $end