Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Rails 4:ActiveAdmin在更新时清除数组字段_Ruby On Rails 4_Activeadmin - Fatal编程技术网

Ruby on rails 4 Rails 4:ActiveAdmin在更新时清除数组字段

Ruby on rails 4 Rails 4:ActiveAdmin在更新时清除数组字段,ruby-on-rails-4,activeadmin,Ruby On Rails 4,Activeadmin,我注册了一个ActiveAdmin模型,如下所示: ActiveAdmin.register MyModel do permit_params :name, :synonyms filter :name index do selectable_column column :name actions end end 我注意到当我从ActiveAdmin界面更新一个对象时,同义词被清除了。同义词是在PostgreSQL数据库中定义的数组字段: syno

我注册了一个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
而不是
allowed_params
尝试了它,但这也不起作用。不确定为什么ActiveAdmin会丢弃此字段。我做错什么了吗?我正在使用的项目使用ActiveAdmin1.0.0.pre4(我意识到这是一个过时的版本)

任何建议都将不胜感激。提前谢谢


注意:这可能是?

我不确定这是否适用于字符串数组,我不知道Activeadmin的特定版本,但我在稍微不同的上下文中遇到了这个问题

我有一个模型,其中数组数据类型是小数和整数。我必须明确说明编辑/更新记录时要使用的表单输入类型,否则就不会从带有更新参数的字段传回任何内容。Activeadmin默认选择了一个数字输入,但它需要作为字符串处理

form do |f|
  f.inputs do
    f.input :ages, as :string, :input_html => {:maxlength => '100'}
  end
end
我不得不手动设置maxlength,因为出于某种原因,它会自动设置得非常短。在模型中,字符串在保存之前必须转换为实际数组

def ages= items
  if items.is_a? String
    items = items.split(' ')
    items.each do |i|
      i.to_i
    end
  end
  super items
end

我不确定这是否适用于字符串数组,我也不知道Activeadmin的具体版本,但我在稍微不同的上下文中遇到了这个问题

我有一个模型,其中数组数据类型是小数和整数。我必须明确说明编辑/更新记录时要使用的表单输入类型,否则就不会从带有更新参数的字段传回任何内容。Activeadmin默认选择了一个数字输入,但它需要作为字符串处理

form do |f|
  f.inputs do
    f.input :ages, as :string, :input_html => {:maxlength => '100'}
  end
end
我不得不手动设置maxlength,因为出于某种原因,它会自动设置得非常短。在模型中,字符串在保存之前必须转换为实际数组

def ages= items
  if items.is_a? String
    items = items.split(' ')
    items.each do |i|
      i.to_i
    end
  end
  super items
end

请尝试self.params['synonyms']=JSON.parse params['my_model]['synonyms]我在代码中没有定义表单。你到底是如何更新对象的?在我帮助开发的应用程序中,甚至有From完全没有许可参数,使用as::select form input和multi-select作为数组:`form do | f | f.inputs do f.input:items,as::select,collection:MyModel::items.values,multiple:true end end`try self.params['synonyms']=JSON.parse参数['my_model]['synonyms]我看到你的代码中没有定义表单。你到底是如何更新对象的?在我帮助开发的应用程序中,甚至有From在没有permit_参数的情况下工作,对数组使用as::select form input with multi-select:`form do | f | f.inputs do f.input:items,as::select,collection:MyModel::ITEMS.values,多个:真结束`