参考までに、これは Rails 3.0.9 を使用しています。
理由がわかりませんが、オブジェクト/行の最初の作成時に空白のままにしていたフィールドを更新できません。
私のモデルが次のようになっている場合:
名前 - 文字列
日付 - 日付
メッセージ - 文字列
最初の作成時にすべてのフィールドに情報を入力すると、後で問題なくすべてを更新できます。しかし、タイトルなどのフィールドに情報を入力しないと、最初の作成後にそのフィールドを更新できません。
私は何も変わったことをしていません。フォームは非常に単純です。
<%= form_for @event do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :date %><br />
<%= f.date_select :date %>
</p>
<p>
<%= f.label :message %><br />
<%= f.text_field :message %>
</p>
<p><%= f.submit %></p>
<% end %>
そして、私のコントローラも同様に単純です:
def update
if @event.update_attributes(params[:event])
redirect_to @event, :notice => "Successfully updated event."
else
render :action => 'edit'
end
end
そしてモデル:
class Event < ActiveRecord::Base
has_many :races, :dependent => :destroy
has_many :price_groups, :dependent => :destroy
accepts_nested_attributes_for :races, :reject_if => lambda{ |a| a[:name].blank? }, :allow_destroy => true
accepts_nested_attributes_for :price_groups, :reject_if => lambda{ |a| a[:name].blank? }, :allow_destroy => true
attr_accessible :name, :date, :message, :races_attributes, :price_groups_attributes
end