選択ボックスのさまざまな選択肢に基づいてフォームを変更する必要があります。必要な選択ボックスには、次のオプションがあります: Pay & Gifts (両方のフィールドが表示されます)、Pay Only (支払いフィールドのみが表示されます)、Gifts Only (ギフト フィールドのみが表示されます)。
これには、:pay と :gifts の 2 つの属性が含まれます。両方の属性に対して 1 つの f.collection 選択ボックスを持つ方法はありますか? おそらくjqueryを使用してフォームフィールドを表示および非表示にする必要があることはわかっていますが、フィールドは選択に基づいて必須(validates_presence_of)です...これを行う方法に関する提案はありますか?
_rewards_step.html.erb
<h2>rewards</h2>
<p>
<%= f.collection_select :pay, Upload::REWARDS, :to_s, :to_s %>
</p>
<p id="payfields">
<%= f.label :pay %><br />
<%= f.text_field :pay %>
</p>
<p id="giftsfields">
<%= f.label :gifts %><br />
<%= f.text_field :gifts %>
</p>
アップロード.rb
class Upload < ActiveRecord::Base
attr_accessible :pay, :gifts
attr_writer :current_step
validates_presence_of :pay, :if => lambda { |u| u.current_step == "rewards" }
validates_presence_of :gifts, :if => lambda { |u| u.current_step == "rewards" }
REWARDS = ['Pay & Gifts', 'Pay Only', 'Gifts Only']