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そしてAliasモデルを追加

これで問題は解決します。

于 2013-03-05T05:22:16.213 に答える