Ruby on rails 在Rails 4中设计用户模型中保存属性字段
我只是按照指南使用以下命令将“firstname”和“secondname”列添加到designe用户模型中Ruby on rails 在Rails 4中设计用户模型中保存属性字段,ruby-on-rails,ruby-on-rails-4,devise,Ruby On Rails,Ruby On Rails 4,Devise,我只是按照指南使用以下命令将“firstname”和“secondname”列添加到designe用户模型中 rails generate migration add_firstname_to_user firstname:string rails generate migration add_secondname_to_user secondname:string 我将这些变化应用于: rake db:migrate 它工作正常,因为我可以通过User.all在控制台中看到这些字段,但我现
rails generate migration add_firstname_to_user firstname:string
rails generate migration add_secondname_to_user secondname:string
我将这些变化应用于:
rake db:migrate
它工作正常,因为我可以通过User.all在控制台中看到这些字段,但我现在的问题是在app/model/User.rb中看不到attr_accessible字段
所以我只是加了几行:
<div><%= f.label :first_name %><br />
<%= f.text_field :firstname, autofocus: true %></div>
<div><%= f.label :second_name %><br />
<%= f.text_field :secondname, autofocus: true %></div>
在app/views/designe/registrations中的new.html.erb中,但它不起作用,因为我注意到我注册的用户的firstname和secondname属性为零
我能做什么?我想是关于attr_可访问步骤的,但我找不到它
任何帮助都将不胜感激。我可能会被你的帖子弄糊涂,但我相信(如链接文档第3步所述),你需要在你的user.rb中添加以下内容:
attr_accessible :firstname, :secondname
您需要为Desive配置允许的参数。在里面 app/controllers/application_controller.rb添加以下行:
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:firstname, :secondname, :email, :password, :password_confirmation, :remember_me) }
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:login, :email, :password, :remember_me) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:firstname, :secondname ,:email, :password, :password_confirmation, :current_password) }
end
请注意,您可以在一次迁移中添加多个列(字段):
rails g迁移将\u字段添加到\u用户名:string secondname:string
这将在以下文件中生成一个文件:
db/migrate/20152347823846(此处仅为数字)\将字段添加到用户.rb
您还可以编辑该文件以添加字段,然后运行rakedb:migrate
我知道现在回应已经晚了,但迟做总比不做强 是的,也许我表达得不好,英语不是我的第一语言,但是回应你的评论。。。如果我在我的user.rb中添加attr_accessible:firstname,:secondname,那么当我尝试进入“注册”页面时,我会收到一个错误,上面写着:“未定义的方法`attr_accessible'”,是的,Rails 4.1中不允许批量分配。在控制器中使用许可方法-请参见此处: