Ruby on rails 即使我能看到它在那里,我还是找不到它
这是rails abort()屏幕中显示的参数: 请参阅“是否默认”。但是,当我这样做的时候:Ruby on rails 即使我能看到它在那里,我还是找不到它,ruby-on-rails,Ruby On Rails,这是rails abort()屏幕中显示的参数: 请参阅“是否默认”。但是,当我这样做的时候: def update #accounts controller method abort(account_params.inspect); . . 。。在控制器中,它仅显示: {"name"=>"Hokuriku", "amount"=>"0"} 我看不到“是默认的”。顺便说一句,这个专栏也是一个新增加的专栏。不过我已经迁移了,我可以确认新列的存在。此外,我还成功地将该列的值输出
def update #accounts controller method
abort(account_params.inspect);
.
.
。。在控制器中,它仅显示:
{"name"=>"Hokuriku", "amount"=>"0"}
我看不到“是默认的”。顺便说一句,这个专栏也是一个新增加的专栏。不过我已经迁移了,我可以确认新列的存在。此外,我还成功地将该列的值输出到上一个屏幕,以便知道模型正在处理它
要修复它,我执行以下中止操作:
abort(params[:account][:is_default].inspect); # outputs "1"
。。现在我可以看到了。所以它确实存在
你知道是什么导致了这一切吗?理想情况下,我希望以尽可能最简单、最干净的方式处理它,并确切地了解account_params是什么,因为它似乎与params[:account:]不同。谢谢我敢打赌是
帐户参数
方法进行过滤。而在params[:account]
中,您可以访问未经过滤的原始数据。查看您的account\u params
方法。它包含许多忽略传递参数的指令(出于安全原因)
它很可能有一种形式:
params.require(:account).permit(:name, :amount)
如果参数不包含给定的键并返回匹配的哈希值,require
将引发异常。允许以静默方式删除参数中未列出的所有键
您可以在github上阅读有关强属性的更多信息:
params.require(:account).permit(:name, :amount)