0

ユーザーがコレクション (入札、進行中、完了、キャンセル) を使用して「ジョブ」の現在の「状態」を変更できるように、ショー ビューに分割ドロップダウン ボタン ( twitter ブートストラップ スタイル) が必要です。

my _form の状態を現在どのように変更しているかを次に示します (正常に動作します)。

<%= f.input :state, :collection => %w(bids in_progress complete canceled), :checked => 'bids', :as => :radio_buttons %>

しかし、ユーザーが状態を変更するためだけにフォーム全体を通過する必要はありません。必要に応じて、「オンザフライ」で状態を変更できるとよいでしょう。

これをドロップダウンに変換してフォームの外で使用するにはどうすればよいですか? 注 - 比率のコレクションをフォームに保持したいと考えています。

ボタンだけでパーシャルを作成し、「表示」ビューでレンダリングする必要がありますか? コントローラーに何かを追加する必要がありますか? たぶん、javascriptを使用する方が簡単/良いでしょうか? たくさんの質問があり、どこから始めればよいかわかりません。ありがとう。

アップデート

これでパーシャルを作成しました:

<%= simple_form_for(@job, :remote => true) do |f| %>
    <%= f.input :state, collection: [ ['bids', 'Bid'], ['in_progress', 'In Progress'], ['complete', 'Complete'] ], label_method: :last, value_method: :first, :onchange => 'this.form.submit()' %>
<% end %>

そして、この少しのJavaScriptを追加しました:

$(this.form).submit();

これは機能していません - 私は正しい方向に進んでいますか? これはフォームを送信する必要があるようです。

4

1 に答える 1

1

状態フィールドのみを含む新しいフォームを show ビューに直接作成することができます (または部分的に、実際には問題ではありません)。次に、ドロップダウンが変更されるたびに、JavaScriptにフォームを送信させます。

Rails form-helper を使用すると、submit がコントローラの update アクションに向けられます。state 属性のみが存在するため、更新される唯一の属性です。

于 2013-02-10T21:31:12.113 に答える