我想要實現的是:當一個對象在新動作中產生時,我想爲模型中的一個屬性指定一個默認值,但是在編輯動作中,當然我想使用已經輸入的值。請看下面的簡化模型爲例:如何向RoR模型中的屬性添加默認值?
class Person < ActiveRecord::Base
validates :salary, :presence => true
validates :rank, :presence => true
end
,並在_form.html.erb
:
<%= form_for(@person) do |f| %>
<%= f.text_field :salary %> # note 1
<%= f.hidden_field :rank %>
<%= end %>
如果這是在新的動作(即,我要創造這個人的對象),我想要將薪水和等級設置爲某些值。 (讓我們假設排名可能會改變爲默認值以外的值)。但在編輯操作中,我只想顯示以前存儲的對象值。什麼是一個很好的做法呢?
P.S.我試圖通過執行<%= f.text_field :salary, :value => 100000 %>
將值設爲note 1
,但問題出在編輯操作中,它也使用此值,這不是所期望的。
'<%= f.text_field:工資,值:(?@ person.new_record 100000:@ person.salary)%>' - 確實這有道理嗎? – dp7
這將是我最後的手段,但是正在考慮RoR考慮過這種情況。爲什麼不把它變成一個普通的答案? – TimeString
爲您做了這項工作? – dp7