私が達成したいことは、次のとおりです。オブジェクトが新しいアクションで生成されるとき、モデルの1つの属性にデフォルト値を割り当てたいが、編集アクションではもちろん入力済みの値を使用したい。一例として、以下の単純化したモデルを考えてみましょう: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