0

ラジオボタンが nil に設定されたフォームがあるため、これを尋ねます。

 = f.radio_button :estimate_type, nil

メソッド呼び出しの最初にデバッガーがあります。

def create
  debugger

デバッガーを起動すると、パラメーターをチェックアウトすると、値が ではon ない nilと言われます。

狂気のオオカミを入力してください。どういうわけか、これはクリックで変換されています。そして、アプリ全体を調べて、おそらく漏れのある JavaScript ファイル、または「on」という単語によく似たものを探しました。すべてのベースを確認しました。schema.rb のデフォルト、jquery のクリック イベント、モデルの検証などです。「オン」という言葉がどこにもありません。

したがって、本当の問題は、送信をクリックすると、デバッガーがモデルの検証のに表示され、うまくいけば、パラメーターがまだフォーム内にある場所にデバッガーをスローできる方法があるかどうかです。 . そして、トレイルをたどって、どこが間違っているかを確認できます。

4

3 に答える 3

1

Rails とは関係ありません。ブラウザーのネットワーク インスペクターを使用して、ブラウザーが実際にパラメーター値 "on" を送信していることを確認することで、これを確認できます。

値を nil に設定しようとすると (実際には意味がありません。パラメーター値は常に​​文字列です)、生成された HTML から value 属性を完全に抑制しています。

標準では、この場合、入力のデフォルト値は「オン」であると規定されているため、ブラウザはそれを送信します。

于 2012-05-31T21:09:33.137 に答える
1

JavaScript とは何の関係もありません。これは私も以前に経験したことですが、なぜ nil が「on」に変換されるのかわかりません。シンボルとして渡すと:nil、単にfalse.

于 2012-05-31T20:08:23.380 に答える
1

問題を解決するためのより良い方法は、デバッガーを検証コールバック自体に配置することです。

于 2012-05-31T20:23:35.960 に答える