【发布时间】:2019-03-08 09:50:00
【问题描述】:
我有一个这样注册的 ActiveAdmin 模型:
ActiveAdmin.register MyModel do
permit_params :name, :synonyms
filter :name
index do
selectable_column
column :name
actions
end
end
我注意到,当我从 ActiveAdmin 界面更新对象时,同义词会被清除。同义词是 PostgreSQL 数据库中这样定义的数组字段:
synonyms text[] DEFAULT '{}'::text[]
我尝试将以下内容放入app/admin/my_model.rb:
controller do
def update
permitted_params[:my_model][:synonyms] = JSON.parse permitted_params[:my_model][:synonyms]
super
end
end
我还尝试使用params 而不是permitted_params,但这也不起作用。不知道为什么 ActiveAdmin 会丢弃这个字段。我做错了什么吗?我正在使用的项目使用 ActiveAdmin 1.0.0.pre4(我意识到这是一个过时的版本)。
任何建议将不胜感激。提前致谢!
注意:这可能是a common issue?
【问题讨论】:
-
尝试 self.params['synonyms'] = JSON.parse params['my_model]['synonyms]
-
我在您的代码中没有看到任何形式。你是如何准确更新对象的?在我正在帮助开发的应用程序中,甚至有 froms 根本没有 permit_params 工作,使用 as: :select 表单输入和数组的多选:` form do |f| f.inputs 做 f.input :items, as: :select, collection: MyModel::ITEMS.values, multiple: true end end `
标签: ruby-on-rails-4 activeadmin