2009-06-27 9 views
6

私はFinancialDocument#document_typeモデル属性を持っています。私は各オプションについて Railsでは、文字列の配列を使用してHTML選択メニューを実装するにはどうすればよいですか?

doctypes = [ 'Invoice', 'Packing slip', 'Other' ] 

...ユーザーがストリングの配列によって移入HTMLを選択し、メニューから文書の種類を選択してみましょうしたいと思い、表示ラベルと返された値が同一です。

私はselectcollection_selectヘルパーを見ましたが、単なるString値ではなく、子モデルの選択に向いているようです。私は私の目的にそれらを曲げる方法を発見できませんでした。

ここ

undefined method `merge' for :to_s:Symbol 

があります...私はこのエラーを取得...(私はHAML、ないエルブを使用しています)私はそれをやろうとしている方法を

form_for(@financial_document) do |f| 
    - doctypes = [ 'Invoice', 'PS', 'Packing slip', 'Other' ] 
    = f.collection_select @financial_document, :document_type, \ 
     doctypes, :to_s, :to_s, :include_blank => true 

です私はこれに使うことができる別のヘルパーですか?またはselectまたはcollection_selectを使用する方法は?

答えて

11

doctypesはActiveRecordコレクションですか?コードを見るとそうは思われません。 selectヘルパーを使用できます。

= f.select :document_type, doctypes, :include_blank => true 

また、あなたがのform_forで作成したフォームオブジェクトにタグを呼び出す場合@financial_documentを渡す必要はありません。

1
doctypes.map!{|d| [d]} 
f.select(@financial_document, :document_type, doctypes) 

と思われます。

+0

ありがとうございましたが、それは私にとってはうまくいきませんでした... [["Invoice"]、["PS"]、["Packing slip"]、["Other"]]:Array – Ethan

+1

ああ、最初の引数を削除しても問題ありません。 –

関連する問題