2017-02-15 5 views
1

私はrailsとwebを初めて使っています。私は、 'bootstrap-multiselect-rails' gemを使って選択ボックスと通常の入力を作成します。
enter image description here
私が[送信]ボタンをクリックしたとき、私はparams変数で選択ボックスの情報を取得しませんでした。bootstrap-multiselect-railsのコントローラで値を取得する方法

enter image description here これはおそらく、選択ボックスの動作をul、liシステムに置き換えることによって、選択ボックスの動作を無効にするブートストラップマルチセレクションの宝石のためです。

%select#select-type{:multiple => "multiple"} - @list_of_type.each do |type| %option{value: "#{type.label}"} #{type.label.upcase_first}

enter image description here

私はJavaScriptで情報を取得して説明したが、コントローラにその情報に治療を実行する方法の答えを見たことがありますか?

答えて

0

選択したフィールドには、パラメータを割り当てられていないことがわかります。通常、selectは次のようになります。<%= select :input, etc...ここで、inputはモデルに保存するパラメータです。 Railsのドキュメントには、次の例を与える:

select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, { include_blank: true }) 

だから、問題は、あなたがPARAMを指定しなかったということです。それも空ではなく、あなたのパラメータには全く言及されていません。正しい?!選択フィールドを作成し、要求通りにパラメータを追加する方法については、基本文書を再度確認してください。残念ながら、私はあなたの宝石を使用して正確な構文を知らない。 マルチプル=> "マルチプル"についてもわかりません。それとも複数でなければならないのですか?しかし、私はあなたのバージョンが宝石で動作すると思う。しかし、あなたのhamlは#idとmultiple:trueでHTML selectを作成するだけです。しかし、あなたが欲しいものは、このようなものです。

<select name="post[category]" id="post_category"> 

選択肢ではパラメータが明確になるようにします。

その後、パラメータを保存したら、コントローラアクションでも使用できます。 結論:selectフィールドにparamを追加します。私はこの宝石でこれを行う方法はわかりませんが、いくつかの文書があるかもしれないし、基本的な文書をチェックすることもできます。また、SOには、レール付きセレクトに関する多くの質問があります。がんばろう!

+0

あなたはそうです! 私は選択を行う宝石の例に触発されたので、他のパラメータには注意を払わなかった。私は間違っていた。 私はパラメータの順序に注意する必要があることを付け加えます 選択(オブジェクト、メソッド、選択肢=選択肢、選択肢{{}、html_options = {}、&ブロック) – Morgan

+0

素晴らしい!これらのことは起こる... –

0

マルチフォームのレールコードを表示できますか?コントローラ内のパラメータを許可し、移行用の列を設定した場合は、レールによって保存される各選択オプションに値を追加するだけです。

select_tagに値を追加する方法については、rails docsをチェックしてください。あなたのHTMLマークアップでは、オプションが価値を持っているかどうかは分かりません。

+0

私はコードを追加するために投稿を編集しました。 このフォームは、以下の記事のリストをリフレッシュすることを目的としています。Ajaxとの関係があると思います。リストを更新しますか? – Morgan

関連する問題