我在应用中的所有文件中重命名了我的一个模型及其关联的表名,控制器,视图文件夹和旧名称的引用。应用程序运行正常,但由于与params相关的错误,我现在无法创建或更新Actions(新名称)。以下是创建新操作时收到的错误:
undefined method `permit' for "create":String Did you mean? print
以下是此错误显示的参数:
Parameters:
{"utf8"=>"✓", "authenticity_token"=>"[removed]", "commit"=>"Create This Campaign"}
我在这里用[删除]手动替换了令牌。
尝试更新操作时收到同样的错误:
undefined method `permit' for "update":String Did you mean? print
以下是此更新错误显示的参数:
Parameters:
{"utf8"=>"✓", "_method"=>"patch", "authenticity_token"=>"[removed]", "commit"=>"Submit", "id"=>"50"}
在我重命名所有内容之前,没有出现这些错误。知道为什么会这样吗?看起来我的应用程序正在将字符串(而不是哈希)传递给params.require(:action).permit,但我不确定为什么会这样做。
答案 0 :(得分:1)
您不应该在Rails中使用action
作为资源名称。 action
中的params
参数始终设置为正在调用的名称,这意味着您无法使用params[:action]
将数据发布回服务器。< / p>
在控制器的update
操作中,params[:action]
将始终是字符串"update"
,因此您在字符串{{}上未定义的permit
错误1}}。