如何为Devise的用户名添加一个slug?

时间:2015-02-21 12:23:52

标签: ruby-on-rails ruby devise slug

通常,我会创建这样的slu ::

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 个答案:

答案 0 :(得分:4)

您可以在User模型中执行此操作:

before_validation :generate_slug

# ...

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