检查添加关联记录是否成功

时间:2011-09-06 19:07:34

标签: ruby-on-rails validation activerecord

我的rails应用程序中有很多关系,其中关联的唯一性经过验证,如下所示:

class Foo < ActiveRecord::Base
  ...
  has_many :foo_bars
  has_many :bars, :through => :foo_bars, :uniq => true
  validates_associated :foo_bars
  ...
end

这很有效,但我想在我的控制器中做的是找出当我尝试在现有的foo和bar之间创建一个新的关联时,如果它是成功的。像这样:

if @myFoo.bars << @bar
    ...
end

但这不起作用,因为&lt;&lt;方法返回所有myFoo的Bars数组不是true / false。我知道必须有一个正确的“轨道方式”才能做到这一点,但我不知道它是什么(我唯一能想到的是检查查询后关联条的数量是否发生变化,但这看起来真的很草率) 。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

试试这个:

link = my_foo.foo_bars.build(:bar => bar)
if link.save
  # success
else
  # error
end