Rails 4在不保存和显示额外空白标签时有效

时间:2016-01-30 00:28:11

标签: ruby-on-rails ruby ruby-on-rails-4 acts-as-taggable-on

我正在使用select2 gemacts as taggable gem

我把它保存到数据库中。

控制器:

def skit_params
  params.require(:skit).permit(:idea, :description, :thetag_list).merge(user_id: current_user.id)
end

形式:

= f.select :thetag_list, options_for_skit, {}, { id: "thetag_tag", multiple: true }

模型:

class Skit < ActiveRecord::Base
  acts_as_taggable_on :thetags
end

coffescript:

$('#thetag_tag').select2
  theme: "bootstrap"

在我的控制台中:

Parameters: {"utf8"=>"✓",
             "authenticity_token"=>"blah", 
             "skit"=>{"thetag_list"=>["", "tag2", "tag42", "tag320"]}, 
             "commit"=>"Update"}

我让我的控制台显示标签,但是,总会显示1个空标签,并且没有标签保存到数据库中。

我检查了数据库控制台select * from tags;,没有任何内容。我试图做= @skit.thetag_list而没有任何表现。

1 个答案:

答案 0 :(得分:0)

刚才发现,在我强大的参数上,我需要添加

atd.staticMethod()
像这样:

:thetag_list => []

同样奇怪的是,这个params.require(:skit).permit(:idea, :description, :thetag_list => []).merge(user_id: current_user.id) 需要是最后一个,否则你会收到错误,我不确定为什么会这样,例如:

[]

会出错。也许有人可以讨论这个问题?