所以我有一个帖子和主题的HABTM。一个帖子 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
然而,这现在打破了post.topics=()
我不会得到错误或任何东西,但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 个。
感谢您的任何见解。