0

わかりました、これはすでにどこかにあるはずですが、見つかりません。

simple_form を使用してフォームを作成しています。値が「Price」モデルのメソッド (「simple?」という名前) に基づくダミーのラジオ選択入力を使用しています。メソッドは、いくつかの属性が使用されているかどうかを調べ、使用されている場合は false を返します。このようにして、使用されていない高度な入力をフォームで非表示にすることができます。同じフォームでより多くの価格を作成 (および作成) できるため、メソッドが適切なオブジェクトに接続されるように simple_form を使用したいと考えています。ユーザーが高度なフィールドを再表示できるように、ラジオ ボタン (および JavaScript) を使用します。

問題は、フォームを送信するときです。フォームには :simple? が含まれています。メソッドが送信されますが、これは単なるメソッドであるため、エラーが返されます。

質問: ':simple?' を確認するにはどうすればよいですか? の値はフォームから送信されませんが、正しい値で開始されますか? または、これを行うよりスマートな方法はありますか?

フォーム.haml

= f.input :simple?, as: :radio, label: "Simple price?"

価格.rb

  def simple?
    true unless advanced?
  end

  def advanced?
    specific_days? || period_id? || description? || begin_time? || end_time?
  end

フィードバックをお寄せいただきありがとうございます。

4

1 に答える 1