Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 更新对象属于关联将创建新对象_Ruby On Rails_Ruby - Fatal编程技术网

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
需要指定给
接受
的嵌套属性,而不是
属于