2012-01-09 23 views
0

我必須遍歷一組未知的屬性並構建一個編輯表格 ,我不清楚form_for的工作方式和所需的語法。each_pair和form_for

試圖做這樣的事情:

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

,而標籤的部分作品,實際text_field不

+0

請描述哪些方面「無法正常工作」。它沒有顯示,沒有填充,拋出錯誤? – Gazler 2012-01-09 13:05:44

回答

0

text_field應該傳遞的名稱該字段而非當前值所以需要爲

f.text_field name 

見在本頁面頂部的例子:http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html

Rails會拿起從你傳遞給form_for該對象的字段的當前值,所以它並不需要成爲一個參數爲text_field

+0

這就是它..有時候,答案就在你面前......只是看不到它。謝謝。 – sysconfig 2012-01-09 13:20:59

+0

很高興幫助。如果你動態地生成這樣的表單,你還應該查看[Rails API](http://api.rubyonrails.org/),並查看'content_columns'方法(作爲'attributes'的替代方法)和'人性化'方法(可以爲你生成更好的標籤,例如'f.label name.humanize') – mikej 2012-01-09 13:33:29

0

試試這個:

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