0

次のコントローラーコードがあります。

@question_group = QuestionGroup.find(params[:id])
@old_order = @question_group.ordering
@new_order = params[:ordering].to_i
  if @old_order < @new_order

パラメータには次のものが含まれます。

Parameters: { "ordering"=>"16", "course_id"=>"8"}

問題は、もともと params[:ordering] が Fixnum ではなかったことです。そのため、to_i を追加しました。現在は Fixnum ですが、常に 0 です。なぜ機能しないのかわかりません。

4

2 に答える 2

0

問題は、私が form_for を使用していname=model[:ordering]て、html で を作成していたことです。としてログに表示されましたordering=>"3"が、コントローラーのパラメーターにアクセスするために必要でしparams[:model][:ordering]た。

于 2014-07-07T20:44:51.813 に答える
0

params[:ordering]が実際に String の"16"場合、params[:ordering].to_iFixnum を返す必要があります16

デバッグ情報を追加し、 の値を確認しますparams[:ordering]。それは非常にうまくいく可能性がありますnil。nil の場合はparams[:ordering].to_i0 を返します。

于 2014-07-07T19:24:34.370 に答える