我们说我有一个用户模型:
class User
has_secure_password
belongs_to :company, required: true
end
公司模特:
class Company
has_many :users, dependent: :destroy
end
我想创建一个将用户分配给公司的表单,如果我的应用程序没有该公司名称的记录,则可以是新表单,或者是预先存在的公司。
这是我到目前为止所做的,但我确信有干燥方法......
class UsersController
def create
user = User.new(user_params)
user.company = Company.find_by_name(params['company']) || Comapny.create(name: params['company'])
if user.save
redirect_to root_path
else
redirect_to singup_path
end
end
end
谢谢!
答案 0 :(得分:1)
您可以使用first_or_create
:
user.company = Company.where(name: params['company']).first_or_create
......这基本上就是它在锡上所说的。