0
A
回答
0
0
我假设你的意思是你有额外的东西,你想添加到用户模型?你可以使用'sanitize'方法来设计。
我不知道你用Devise得到了多少,所以我只是从一开始就覆盖它。
宝石添加到您的Gemfile中,然后运行:
rails g devise:install
一旦安装,生成你的用户模型传递任何额外的东西,你想添加。电子邮件和密码默认添加。在这个例子中,我将传递一个用户名,为字符串现在
rails g devise User username:string
用户已经生成,可以为设计视图运行生成器:
rails g devise:views
,这将产生一个整体一堆与设计相关的东西,但是您需要的两个主要东西是edit.html.erb
和new.html.erb
视图文件,这两个文件都位于app/views/devise/registrations
中。
在这些文件中,为表单添加额外字段,以便您可以传递用户注册和用户编辑帐户中的信息。
<%= f.label :username %>
<%= f.text_field :username %>
一旦这个形式,它会显示在注册页面上,但它不会被保存到用户帐号不消毒的选项。在你application_controller.rb
文件,你需要添加以下内容:
before_filter :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) << :username
devise_parameter_sanitizer.for(:account_update) << :username
end
这将允许你保存的用户名,因为你已经告诉设计,这是一个允许的参数。
一旦你拥有了它保存起来,然后你可以继续使用:用户名登录这里是你如何能实现将物品=)>https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in-using-their-username-or-email-address
如果其中一个答案帮助你,请给予好评/接受或解释一下你还在挣扎。 – jcuenod 2015-04-07 16:37:00