Ruby on rails 即使我能看到它在那里,我还是找不到它

Ruby on rails 即使我能看到它在那里,我还是找不到它,ruby-on-rails,Ruby On Rails,这是rails abort()屏幕中显示的参数: 请参阅“是否默认”。但是,当我这样做的时候: def update #accounts controller method abort(account_params.inspect); . . 。。在控制器中,它仅显示: {"name"=>"Hokuriku", "amount"=>"0"} 我看不到“是默认的”。顺便说一句,这个专栏也是一个新增加的专栏。不过我已经迁移了,我可以确认新列的存在。此外,我还成功地将该列的值输出

这是rails abort()屏幕中显示的参数:

请参阅“是否默认”。但是,当我这样做的时候:

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)