重命名模型后,为什么我的创建和更新函数失败?
问题描述:
我在应用程序中的所有文件中重命名了我的一个模型及其关联的表名,控制器,视图文件夹和旧名称的引用。该应用程序运行正常,但我现在无法创建或更新Actions(新名称),因为与params相关的错误。下面是创建一个新的操作时接收到的错误:重命名模型后,为什么我的创建和更新函数失败?
undefined method `permit' for "create":String Did you mean? print
这里与此错误显示的PARAMS:
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,但我不知道为什么它会这样做。
答
您不应该在Rails中使用action
作为资源名称。 params
中的action
参数始终设置为名称的动作被调用,这意味着您不能使用params[:action]
将数据发回您的服务器。
在控制器的update
行动,params[:action]
永远是字符串"update"
,所以你得到的错误有关permit
不上串"update"
定义。