1

在我的站点上创建用户时,我希望执行 User.new 实例,但我还需要创建 Alias.new 对象。用户有很多别名。但是,我还需要在保存之前验证没有其他具有该名称的别名。

从控制台我的代码可能如下所示:

u = User.new(:name => "Bob")
a = Alias.new(:name => "SirBob", :user_id => u)

但这不起作用,因为在我保存之前你没有 id。那么如何在保存它们之前验证这两个项目的名称唯一性呢?

4

2 回答 2

1

试试这个:

u = User.new  
u.aliases.build

希望这可以帮助...

于 2013-03-05T06:14:11.790 回答
0

采用

ActiveRecord::Base.transaction do
  u = User.new(:name => "Bob")
  a = Alias.new(:name => "SirBob", :user_id => u)
end

并添加validates_uniqueness_of :name别名模型

这将解决您的问题。

于 2013-03-05T05:22:16.213 回答