【发布时间】:2011-10-20 09:36:57
【问题描述】:
我按照 Ryan Bates 的 rails tutorial 设置了一个可排序的对象列表。经过一些修改,它现在可以在“有很多”页面上拖放“属于”元素列表,并将发布操作发送到我的控制器......然后给出 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'
...这有点难看,但我可以让它工作的唯一方法!
提前致谢。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 jquery-ui-sortable railscasts