2012-01-09 6 views
0

未知の属性をループして編集フォーム を作成する必要があり、form_forの動作方法と必要な構文を明確に理解していません。このような何かやろうとしeach_pair and form_for

:ラベル部分の作品ながら

- @thing.attributes.each_pair do |name, value| 
    = f.label name 
    = f.text_field value 

を、実際のtext_fieldは

+0

どのような面が「機能していません」と記述してください。それは、表示していない、表示していない、エラーを投げている? – Gazler

答えて

0

text_fieldはの名前を渡す必要があります現在の値ではなくフィールドが

である必要があります

このページの上部にある例を参照してください:http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html

Railsはそれはの一つである必要はありませんが、form_forに渡されてきたオブジェクトのフィールドの現在の値をピックアップしますパラメータはtext_fieldです。

+0

これはそれだった..いつか答えはあなたの前にある。ちょうどそれを見ることができなかった。ありがとう。 – sysconfig

+0

喜んで助けました。このようなフォームを動的に生成する場合は、[Rails API](http://api.rubyonrails.org/)を見て、 'attribute'の代わりに' content_columns'メソッドをチェックしてください。 'humanize'メソッド(これは' f.label name.humanize'のようにより良いラベルを生成することができます) – mikej

0

はこれを試してみてくださいません。

- @thing.attributes.each_pair do |name, value| 
    = f.label name 
    = f.text_field name.to_sym, value