Ruby on rails 如何为Desive的用户名添加slug?

Ruby on rails 如何为Desive的用户名添加slug?,ruby-on-rails,ruby,devise,slug,Ruby On Rails,Ruby,Devise,Slug,通常,我会创建这样的段塞: params[:user][:name_slug] = params[:user][:name].parameterize 但是Desive有一个相当大的问题——我怎么能加上它呢? 我已经创建了一个控制器,在这里我指定了创建用户所需的属性,但是如何在那里添加slug呢 class RegistrationsController < Devise::RegistrationsController private def sign_up_params

通常,我会创建这样的段塞:

params[:user][:name_slug] = params[:user][:name].parameterize
但是Desive有一个相当大的问题——我怎么能加上它呢? 我已经创建了一个控制器,在这里我指定了创建用户所需的属性,但是如何在那里添加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
提前感谢您。

您可以在您的用户模型中这样做:

您可以在您的用户模型中执行此操作:


谢谢,我不知道这个选项!顺便说一句,它应该在\u验证之前:生成\u。谢谢,我不知道这个选项!顺便说一句,它应该在\u验证之前:生成\u slug
before_validation :generate_slug

# ...

private
def generate_slug
  self.name_slug = name.to_s.parameterize
end