Ruby on Rails 5强参数

时间:2018-06-17 09:13:34

标签: ruby-on-rails ruby parameters

我在处理一个项目时遇到了一些麻烦。请注意,我认为自己仍然是一个初学者/新手:)

为了保持简短和甜蜜,我使用Rails&主动管理员建立一个管理界面,我可以在我的数据库模型上执行CRUD操作,这一切都很有效。但是我最近决定要在我的一个模型中添加另一个字段,一个"描述"字段,因此生成了一个迁移,运行rake db:migrate并更新了我的控制器中的允许参数列表。活跃的管理资源。

我的问题是没有为这个新的"描述"保存数据。字段 - 通过创建新条目或更新现有条目。我可以看到终端的输出确认它被强大的参数过滤掉了;返回Unpermitted parameter: :Description然而,我的印象是我已经正确设置了我的强力参数,所以我不确定我是否正确设置了我的许可证参数或我还能做些什么。

使用Rails 5.1.0&将在下面发布代码。

class CellsController < InheritedResources::Base

  def index
  end

  private

    def cell_params
      params.require(:cell).permit(:name, :description)
    end

end

#database schema for my cell model
  create_table "cells", force: :cascade do |t|
    t.string "name"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.text "Description"
  end

#Active Admin resource
ActiveAdmin.register Cell do

 permit_params :name, :description

end

再次,非常感谢任何帮助,因为我确定我忽略了某些事情,很高兴提供所需的任何其他信息:)

三江源!

1 个答案:

答案 0 :(得分:3)

对我而言,似乎不接受description参数,因为该模型只有Description列(大写D)。要解决此问题,请将每个params.permit(:description)更改为params.permit(:Description),或者只是在新迁移中重命名该列:

def change
  rename_column :cells, :Description, :description
end

我建议重命名该列,因为它可以避免将来发生任何问题。