проверка успешности добавления связанной записи - PullRequest
2 голосов
/ 06 сентября 2011

У меня есть много сквозных отношений в моем приложении 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

, но это не работает, потому что метод << возвращает массив всех баров myFoo, не true / false. Я знаю, что для этого должен быть правильный «путь рельсов», но я не знаю, что это такое (единственное, о чем я могу подумать, это проверить, изменилось ли количество связанных баров после запроса, но это выглядит действительно неаккуратно) , Есть предложения? </p>

1 Ответ

2 голосов
/ 07 сентября 2011

Попробуйте это:

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