我按照 Ryan Bates 的rails 教程设置了可排序的对象列表。经过一些修改,它现在可以在“有很多”页面上拖放“属于”元素列表,并将发布操作发送到我的控制器......然后给出 500 错误
NoMethodError(当你没有预料到它时你有一个 nil 对象!你可能期望一个 Array 的实例。在评估 nil.each_with_index 时发生错误):app/controllers/cuttings_controller.rb:87:in `sort'
我相信这是因为虽然 Ryan 的控制器知道它正在处理哪个切割,但我需要传递给它的参数。
这是我的用户页面上的行(包含“cuttings”):
<%= sortable_element('faqs', :url => 'sort_cutting', :handle => "handle") %>
这是cuttings控制器中的定义:
def sort
params[:cuttings].each_with_index do |id, index|
Cutting.update_all(['position=?', index+1], ['id=?', id])
end
render :nothing => true
end
有人能告诉我如何调整它以使其正常工作吗?我应该传递哪些参数?我试过:cutting => @cutting.id,但没用。使用以下方式设置发布路线:
match 'users/sort_cutting' => 'cuttings#sort'
......这有点难看,但我能让它工作的唯一方法!
提前致谢。