Итак, у меня есть HABTM для постов и тем.A Темы сообщения HABTM и тема Сообщения HABTM.Что мне нужно сделать, так это вызвать какой-то метод в сочетании с вызовом post.topics=()
Это то, что я пытался сделать в Post.rb:
def topics_with_extra_stuff=(topics)
topics_without_extra_stuff=(topics)
extra_stuff()
end
alias_method_chain :topics=, :extra_stuff
Однако, теперь это ломается1007 *
Я не получу сообщение об ошибке или что-то еще, но topics()
все равно будет старым значением после изменения его на topics=()
Если я выдам ошибку в topics_with_extra_stuff=
трассировка скажет, что в topics=
произошла ошибка, так что я знаю, что она туда попала.Я также знаю, что extra_stuff()
был вызван.
Вот пример вывода:
>> p = Post.last
=> #<Post id:1 ....>
>> p.topics
=> [#<Topic id:1 ....>, #<Topic id:2 ....>]
>> p.topics = [ p.topics.first ]
=> [#<Topic id:1 ....>]
>> p.topics
=> [#<Topic id:1 ....>, #<Topic id:2 ....>]
У него не должно быть 2 тем, только 1.
Спасибо за понимание.