在我的网站上创建用户时,我想要执行User.new实例,但我也需要创建一个Alias.new对象。用户有很多别名。但是,我还需要在保存之前验证没有其他具有该名称的别名。
从控制台我的代码可能如下所示:
u = User.new(:name => "Bob")
a = Alias.new(:name => "SirBob", :user_id => u)
但是这不起作用,因为在我保存之前你没有id。那么如何在保存之前验证两个项目的唯一性?
答案 0 :(得分:1)
试试这个:
u = User.new
u.aliases.build
希望这会有所帮助......
答案 1 :(得分:0)
使用
ActiveRecord::Base.transaction do
u = User.new(:name => "Bob")
a = Alias.new(:name => "SirBob", :user_id => u)
end
并在Alias模型
上添加validates_uniqueness_of :name
这将解决您的问题。