使用ActiveRecord更新/删除JoinTable记录

时间:2017-01-24 16:36:43

标签: ruby-on-rails activerecord

我有3个模特:电影,movie_tags和movie_tag_counts

这是一个经典有很多关系。我的用例是每部电影都有多个标签,用户可以对已添加的标签进行投票。

我的问题是我似乎无法更新movie_tag_counts中的现有对象

movie_tag_count = MovieTagCount.first
movie_tag_count.count += 1
movie_tag_count.save

结果是此错误消息

  

TypeError:nil不是符号,也不是字符串

我最好的猜测是,原因是movie_tag_counts表没有自己的id列,但我仍然不知道如何解决它。

我目前的解决方法是直接执行sql语句

1 个答案:

答案 0 :(得分:0)

原来我的猜测是正确的,ActiveRecord期待一个id列,我像这样添加它

add_column :movie_tag_counts, :id, :primary_key

一切都很完美。我确定通过覆盖一些AR方法可以在没有id列的情况下做到这一点,但我想让另一列不会伤害那么多