2

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

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 

我该如何解决?谢谢。

4

1 回答 1

3

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

例子: 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
于 2013-11-09T18:12:20.297 回答