初始创建后更新未使用的字段不起作用

时间:2012-04-10 11:27:16

标签: ruby-on-rails-3

作为参考,这是使用Rails 3.0.9。

我似乎无法弄清楚原因,但我无法更新在初始创建对象/行时留空的字段。

如果我的模型看起来像这样:

name - string

日期 - 日期

消息 - 字符串

如果我在初始创建时将信息放在所有字段中,那么一切都可以在以后顺利更新。但是如果我没有将信息放在其中一个字段中,比如说标题,我就无法在初始创建后更新该字段。

我没有做任何与众不同的事情,形式非常简单:

<%= 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

0 个答案:

没有答案