如何在 Devise 的用户名中添加 slug?
Posted
技术标签:
【中文标题】如何在 Devise 的用户名中添加 slug?【英文标题】:How to add a slug to username for Devise? 【发布时间】:2015-04-23 02:56:03 【问题描述】:通常,我会像这样创建 slug:
params[:user][:name_slug] = params[:user][:name].parameterize
但是 Devise 的这个问题很严重 - 我该如何添加它? 我创建了一个控制器,在其中指定了创建用户所需的属性,但是如何在其中添加 slug?
class RegistrationsController < Devise::RegistrationsController
private
def sign_up_params
params.require(:user).permit(:name, :name_slug, :email, :password, :password_confirmation)
end
protected
def update_resource(resource, params)
resource.update_without_password(params)
end
end
提前谢谢你。
【问题讨论】:
【参考方案1】:你可以在你的 User
模型中做到这一点:
before_validation :generate_slug
# ...
private
def generate_slug
self.name_slug = name.to_s.parameterize
end
【讨论】:
谢谢,不知道这个选项! (顺便说一句,应该是before_validation :generate_slug
)以上是关于如何在 Devise 的用户名中添加 slug?的主要内容,如果未能解决你的问题,请参考以下文章
如何将自定义字段添加到 devise_invitable 邀请表单