看起来有很多人有同样的问题,但没有人解决我的问题.我对rails很新,所以这可能是我想念的小事.
我收到以下错误'ArgumentError:错误的参数数量(1为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:未定义的局部变量或方法`approved_by'为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.
Game.find(12).game_categories(55)
返回记录关系,而不是单个记录.因此,为了更新id为12的游戏的所有game_categories,你可以使用
Game.find(12).game_categories(55).update_all(approved_by: 1)