我有两个模型:Project
has_one :performer
和Performer
belongs_to :project
我有与project.performer
如何删除此关系?我需要属性performer_id
才能拥有值nil
。
答案 0 :(得分:3)
您只需更新Project
对象。
class Project < ActiveRecord::Base
...
def remove_performer
update(performer_id: nil)
end
...
end
添加方法remove_performer
,然后您可以使用它从项目中删除表演者。
proj = Project.new
proj.remove_performer
答案 1 :(得分:1)
如果我理解您的错误,您只需从模型中移除has_one
和belongs_to
即可。
<强>更新强>
要为特定对象将performer_id
设置为nil
,您可以执行
project.update_column :project, nil
这将跳过任何验证。当然,您的数据库架构应允许NULL
的{{1}}值。
注意:在Rails 4中projects.performer_id
等于update_column
。
阅读docs中的更多内容。