在rails 4中,如何在创建之前操纵强参数?

我试图将表格多个选择字段中的数组转换为用逗号分隔元素的字符串。 我正在使用的gem需要一个以逗号分隔的字符串forms的tag_field,但是我的多个select字段会创建一个数组。 强参数拒绝数组,因此我需要将数组转换为字符串。 这是我现在在我的应用程序控制器中的代码,但它不起作用。

def configure_devise_params devise_parameter_sanitizer.for(:sign_up) do |u| u[:tag_list].join(', ') u.permit(:email, :password, :password_confirmation, :profile_name, :how_did_you_hear, :first_name, :last_name, :type, :tag_list) end end 

在我添加:tag_list之前,我有以下代码可以工作:

 def configure_devise_params devise_parameter_sanitizer.for(:sign_up) do |u| u.permit(:email, :password, :password_confirmation, :profile_name, :how_did_you_hear, :first_name, :last_name, :type) end end 

我该如何解决? 谢谢。

有一种允许数组的简单方法。

示例: params.require(:article).permit(:title, {:rubric_ids => []})

在你的情况下,它会像这样:

 def configure_devise_params devise_parameter_sanitizer.for(:sign_up) do |u| u.permit(:email, :password, :password_confirmation, :profile_name, :how_did_you_hear, :first_name, :last_name, :type, {:tag_list => []}) end end