2011-07-06 12 views
0

各プロパティのテキスト入力を生成するフォームを作成しました。
プロパティのリストは、顧客が設定することができます。Rails:設定可能な入力数を持つフォーム

<% properties = ["refractivity_at_2kHz", "refractivity_at_5kHz"] %> 

<% properties.each do |property| %> 
    <div class="property"> 
    <%= f.label property %> 
    <%= f.text_field property %> 
    </div> 
<% end %> 

エラーundefined method refractivity_at_2kHzで失敗します。

この問題の通常の解決方法は何ですか?

モデルに配列を追加し、f.text_field myarray[property]を使用する必要がありますか?

+0

ないモデルであることはできますか? – Bohdan

+0

@Bohdan:いいえ。プロパティは本当に動的です。クライアントはいつでも変更できます。 –

+0

Kaiが正しければ、 'f.text_field(property)'を使うとオブジェクトにはこのプロパティがあると期待します。 – Bohdan

答えて

1

form_for(@model)ですか?

f.text_field(property)は、@modelでそのメソッド/プロパティを検索するためです。

あなたはtext_field_tag(property)f.text_field(property)を変更したいすべてのこれらの性質を持っているため、フォームを作成し、[1]

歓声

[1] http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-text_field_tag

+0

はい、それはform_forブロックにあります。私はちょうどtext_field_tagを見ましたが、手動でフォームの結果を処理できるように思われます:-) –

+0

text_field_tagを使用するとすぐに戻りますhttp://stackoverflow.com/questions/6593263( - ') –

+1

多分あなたはプロパティをシリアル化することができますし、http://stackoverflow.com/questions/1002963/how-to-edit-a-rails-serialized-field-in-a-formに似たようなことをするより – krichard

関連する問題