保存到postgres表列时缺少参数

时间:2016-06-12 08:50:03

标签: ruby-on-rails postgresql

在更改我的数据库架构之前一切都很顺利

在:

...
t.string :skills, :string
...

后:

...
  t.string :skills, array: true, default: '{}'
end

add_index :table_name, :skills, using: 'gin'
...

在日志控制台中,我可以看到params:

"project"=>{"skills"=>"Wordpress,OpenCart,Magneto","Spree Commerce"}

这部分我无法理解发生了什么(仍在控制台日志中):

SQL (0.8ms)  INSERT INTO "projects"... ["skills", "{ordpress,\"OpenCart\",Magneto}"]

为什么WordPress中的“W”会被切断? “狂欢商业”在哪里?

我是否需要在索引列上添加其他内容?

我的控制器具有标准许可:skills,模型project.rb

中没有任何内容

1 个答案:

答案 0 :(得分:0)

因为我很懒,我找到了更好的路线。

我的项目控制人许可证参数只是标准:

...

 def create
  @project = current_user.projects.build(foo_params)
 end

 private
  def foo_params
   params.require(:project).permit(:a, :b, :skills)
  end
...

我没有足够的技术知道如何允许哈希/数组,所以懒惰的方式是:

...
def create
  par = (params["project"]["skills"]).split(",")
  @project = current_user.projects.build(foo_params.merge({"skills" => par}))
end

private
  def foo_params
    params.require(:project).permit(:a, :b)
  end
...

现在我有:

enter image description here

如果您有更好的方法,请告诉我。感谢。