我有一套相当基本的模型,其中“项目”有一个“所有者”。我想允许用户在创建新项目时输入所有者的名字。如果所有者不存在,则应创建新的所有者。这样做有好办法吗?我一直在考虑使用attr_accessor
和before_validation
,但它似乎会与这种关系发生冲突。有任何想法吗?谢谢!
答案 0 :(得分:1)
使用与您的关系名称不同的内容...... owner_name
应该没问题。然后编写必要的before_validation
方法。
答案 1 :(得分:1)
我会在你的控制器中使用这些内容:
def update
Project.transaction do
@project.owner = Owner.find_or_create_by_name(params[:project].delete(:owner_name))
@project.attributes = params[:project]
@project.save!
end
end