2016-10-26 22 views
0

私は、ユーザーがIPアドレスを左側の選択ボックスから右側に移動できる複数の選択フォームを作成しようとしています(そのオブジェクトが何であるかわかりません)。Rails複数の選択フォーム

私は私の基本的なフォームコードを持っているが、(私は無関係なコードを撮影した)の代わりにドロップダウンを示しています:

<%= form_for @network_host_groups do |f| %> 
    <%= f.select :network_hosts, @network_hosts.collect { |n| [ n.ip_address, n.id ] } multiple: true, include_blank: false %> 
    <%= f.submit "Add", class: "btn btn-success" %> 
<% end %> 

に似ています。しかし

enter image description here

、私は次のようなものを得ようとしています:

enter image description here

これを行う最善の方法は何ですか?生成されたHTML <select>タグに含まれるようにRailsのオプションについては、追加属性のhtml_optionsからoptions

答えて

0

あなたはthe docs for selectを見てみる場合は、それは2つのオプションのセットを取る表示されます。これらは別々のハッシュで渡す必要があるので、multipleは、HTML属性であるのに対し、

include_blankは、Railsのオプションです:

はまた、それはあなたが失ってしまった質問を投稿するようにコードを片付けときのように見えますあなたのcollectブロックの終わりの後にカンマを入力してください。これを再試行するときは、必ず含まれていることを確認してください。

これは、利用可能なホストがリストの代わりに単一のアイテムドロップダウンとして表示される理由です。 「利用可能」リストと「割り当て済み」リストとの間の移動を実装することは、単一の質問の範囲を超えている。

+0

[OK]をプレゼンテーションしましたが、そのロジックはどうなっていますか?左側のオブジェクトは、送信側で渡すフォーム要素を実際には含むことができません。右側のオブジェクトだけがコントローラアクションを実行する必要があるからです。私が間違っている? – Godzilla74

+0

そうです。非常に簡単に言えば、左側の* Available *リストは、 'select_tag'ヘルパーを使って生成される可能性が高いです。つまり、最初に適切なIPアドレスが設定された' f.select ... 'を使って、 ..そして2つの矢印は、2つのリストの間で項目を移動するJavaScriptバインドを必要とします。 – mikej

関連する問題