繁体   English   中英

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

[英]In rails 4, how can I manipulate strong parameters before creation?

我正在尝试将从表单多重选择字段输入的数组转换为用逗号分隔元素的字符串。 我正在使用的gem需要以逗号分隔的字符串形式的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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM