我有一個模型,用戶不允許在初始創建後更新大多數字段。Rails在編輯時重用窗體視圖,但只設置一些字段
我已經看到了:readonly
HTML屬性我可以在所有字段助手上使用,但是在所有字段上使用條件感覺... icky。
我現在沒有使用任何特別的東西來創建我的表格,只是簡單的HAML。任何人都知道這樣做的更好方法?
這是我一直想這樣做迄今:
def set_readonly?(object, html_attr)
html_attr.merge(object.new_record? ? {} : {:readonly => 'readonly'})
end
用作:
f.text_field :supplier_id, set_readonly?(@damaged_goods, {:size => 5})
的解決方案,讓我流口水。將設置屬性爲已讀的方式 - 僅在State Machine的模型上,然後傳播到視圖。 :)
'attr_protected'只是從保護數據庫中被更新的值。我寧願沒有我的用戶花時間更新字段,以便在沒有警告的情況下保存。 :)因此,我想找到一種方法來設置特定狀態的只讀值,然後視圖會知道將其設置爲只讀。我現在正在使用我在問題主體中編寫的'set_readonly?'助手。 – gaqzi 2010-05-26 07:47:58