我在处理一个项目时遇到了一些麻烦。请注意,我认为自己仍然是一个初学者/新手:)
为了保持简短和甜蜜,我使用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
再次,非常感谢任何帮助,因为我确定我忽略了某些事情,很高兴提供所需的任何其他信息:)
三江源!
答案 0 :(得分:3)
对我而言,似乎不接受description
参数,因为该模型只有Description
列(大写D
)。要解决此问题,请将每个params.permit(:description)
更改为params.permit(:Description)
,或者只是在新迁移中重命名该列:
def change
rename_column :cells, :Description, :description
end
我建议重命名该列,因为它可以避免将来发生任何问题。