Ruby on rails 更新对象属于关联将创建新对象
我有一个事件对象,其Ruby on rails 更新对象属于关联将创建新对象,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个事件对象,其属于关联到位置: class Event < ActiveRecord::Base belongs_to :location accepts_nested_attributes_for :location end 我创建了一个新事件,如下所示: def new @event = Event.new @event.build_location end 但是,当我编辑这个新创建的记录的位置时,不会编辑位置记录,而是在数据库中插入一个新
属于关联到位置:
class Event < ActiveRecord::Base
belongs_to :location
accepts_nested_attributes_for :location
end
我创建了一个新事件,如下所示:
def new
@event = Event.new
@event.build_location
end
但是,当我编辑这个新创建的记录的位置时,不会编辑位置记录,而是在数据库中插入一个新的位置记录
我的问题是,如何确保在编辑位置(从父事件表单)时,它将更新属于位置对象的属性,而不是创建新的位置对象。我找到了解决方案,它是通过向关联添加:update\u only=>true
。模型的代码变为:
class Event < ActiveRecord::Base
belongs_to :location, :update_only => true
accepts_nested_attributes_for :location
end
class事件true
接受位置的\u嵌套\u属性\u
结束
我找到了解决方案,它是通过向关联中添加:update\u only=>true
。模型的代码变为:
class Event < ActiveRecord::Base
belongs_to :location, :update_only => true
accepts_nested_attributes_for :location
end
class事件true
接受位置的\u嵌套\u属性\u
结束
quick question location有许多事件,请粘贴查看代码。您希望在每个事件上创建位置还是在创建事件时从现有位置中选择位置用户可以从列表中选择位置。如果该位置还不存在,则应创建该位置。如果它在列表中,则只应保存关联。您的Location
类是否有相应的has_many:events
或has_one:event
在其中?@rudolph9:no,因为外键位于event object中快速问题位置有许多事件,粘贴视图代码。您希望在每个事件上创建位置还是在创建事件时从现有位置选择位置用户可以从列表中选择位置。如果该位置还不存在,则应创建该位置。如果它在列表中,则只应保存关联。您的位置
类是否有相应的包含多个:事件
或包含一个:事件
?@rudolph9:no,由于外键位于事件对象中,我认为:update\u only
需要指定给接受的嵌套属性,而不是属于。我认为:update\u only
需要指定给接受的嵌套属性,而不是属于。