bin*_*att 9 ruby-on-rails devise ruby-on-rails-4
这是我试过的,
rails g migration add_username_to_hrs
bundle exec rake db:migrate
补充说 attr_accessible:username
重启服务器
我的add_username_to_hr.rb
class AddUsernameToAuthorize < ActiveRecord::Migration
def change
add_column :authorizes, :username, :string
end
end
Run Code Online (Sandbox Code Playgroud)
错误
#的未定义方法`username'
问题:如何在我的设计宝石中添加用户名字段?
小智 9
我做了同样的事情.请按以下步骤操作:
rails generate migration add_username_to_users username:string:uniq
rake db:migrate
加 attr_accessible :username
在application_controller.rb中:
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation, :remember_me) }
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:login, :username, :email, :password, :remember_me) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:username, :email, :password, :password_confirmation, :current_password) }
end
Run Code Online (Sandbox Code Playgroud)在config/initializers中如果要替换email为usernname
config.authentication_keys = [ :username ]
config.case_insensitive_keys = [ :username ]
config.strip_whitespace_keys = [ :username ]
Run Code Online (Sandbox Code Playgroud)更新视图.
注意如果attr_accessible :username给出错误试试attr_accessor :username
如果您使用的是rails 4,请将以下代码放在应用程序控制器中
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) << :username
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11933 次 |
| 最近记录: |