2

我想将一个数组inputed从一个表单多选字段转换为一个字符串,用逗号分隔元素。我使用的宝石需要以逗号分隔的字符串形式的tag_field,但是我的多选字段会创建一个数组。强参数拒绝数组,所以我需要将数组转换为字符串。这是我现在在我的应用程序控制器中的代码,但它不起作用。在rails 4中,如何在创建之前操作强参数?

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 

我该如何解决这个问题?谢谢。

回答

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 
+0

谢谢,我不想让它虽然允许阵列。宝石需要一个逗号分隔元素的字符串,所以我试图将数组转换为一个字符串。 – Philip7899

+0

你能指定宝石名称吗?许可证操作后,您可以尝试加入参数。 –

+0

我正在使用宝石上的行为标签。什么是连接参数? – Philip7899

相关问题