重命名模型后,为什么我的创建和更新功能失败?

时间:2016-11-21 23:31:50

标签: ruby-on-rails activerecord rails-activerecord ruby-on-rails-5 rails-models

我在应用中的所有文件中重命名了我的一个模型及其关联的表名,控制器,视图文件夹和旧名称的引用。应用程序运行正常,但由于与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,但我不确定为什么会这样做。

1 个答案:

答案 0 :(得分:1)

您不应该在Rails中使用action作为资源名称。 action中的params参数始终设置为正在调用的名称,这意味着您无法使用params[:action]将数据发布回服务器。< / p>

在控制器的update操作中,params[:action]将始终是字符串"update",因此您在字符串{{}上未定义的permit错误1}}。