ArgumentError:rails

时间:2016-01-07 08:38:03

标签: ruby-on-rails ruby ruby-on-rails-4

看起来有很多人有同样的问题,但没有人解决我的问题。我对rails非常陌生,所以这可能是我想念的小事。

我收到以下错误'ArgumentError:错误的参数数量(1 for 2)'

当我运行命令

Game.find(12).game_categories(55).update(approved_by: 1)

我正在传递approved_by键和值(整数)1,但它不起作用。

我在另一篇发现的帖子中试过这个

Game.find(12).game_categories(55).update(approved_by, 1)

但后来我得到错误'NameError:undefined local variable或method`enified_by'for main:Object'

游戏与带有has_many的game_categories相关联,并且approved_by列肯定在那里。

使用命令

创建新的game_category可以正常工作
Game.find(1).game_categories.create!(name:  'category name')

但我无法更新属性。

怎么回事?

修改

我只是想更新一条记录('game_categories'表中的列'approved_by',ID为55。

1 个答案:

答案 0 :(得分:6)

Game.find(12).game_categories(55)

返回记录的关系,而不是单个记录。因此,为了更新id为12的游戏game_categories,您可以使用

Game.find(12).game_categories(55).update_all(approved_by: 1)