オブジェクトの並べ替え可能なリストの設定に関するRyan Bates のrails チュートリアルに従いました。いくつかの変更を加えて、「has many」ページに「belongs to」要素のリストをドラッグアンドドロップできるようになり、投稿アクションがコントローラーに送信されます...その後、500エラーが発生します
NoMethodError (予期しないときに nil オブジェクトを取得しました! Array のインスタンスを予期していた可能性があります。nil.each_with_index の評価中にエラーが発生しました): app/controllers/cuttings_controller.rb:87:in `sort'
これは、Ryan のコントローラーがどのカットを扱っているかを認識していたのに対し、私のコントローラーにはパラメーターが渡される必要があるためだと思います。
これが私のユーザーページの行です(「切り抜き」を保持しています):
<%= 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 を試しましたが、うまくいきませんでした。post ルートは以下を使用して設定されます。
match 'users/sort_cutting' => 'cuttings#sort'
...これは少し醜いですが、それを機能させる唯一の方法です!
前もって感謝します。