2017-01-24 67 views
1

我有3种型号:电影,movie_tags和movie_tag_counts更新/删除JoinTable记录用ActiveRecord

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

我的问题是,我似乎无法更新movie_tag_counts

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

结果的现有对象此错误消息

TypeError: nil is not a symbol nor a string

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

我目前的解决方法是执行一个SQL语句直接

回答

0

原来我的猜测是正确的,ActiveRecord的预计ID列,我说像这样

add_column :movie_tag_counts, :id, :primary_key 

,一切都完美。我敢肯定,有一种方法可以在没有id列的情况下通过覆盖一些AR方法来实现,但是我想让另一列不会太大伤害