如何为 Devise 的用户名添加 slug?
How to add a slug to username for Devise?
通常,我会这样创建 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
提前致谢。
你可以在你的 User
模型中做到这一点:
before_validation :generate_slug
# ...
private
def generate_slug
self.name_slug = name.to_s.parameterize
end
通常,我会这样创建 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
提前致谢。
你可以在你的 User
模型中做到这一点:
before_validation :generate_slug
# ...
private
def generate_slug
self.name_slug = name.to_s.parameterize
end