看起来有很多人有同样的问题,但没有人解决我的问题。我对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。
答案 0 :(得分:6)
Game.find(12).game_categories(55)
返回记录的关系,而不是单个记录。因此,为了更新id为12的游戏game_categories,您可以使用
Game.find(12).game_categories(55).update_all(approved_by: 1)