Ruby on rails 在Rails 4中设计用户模型中保存属性字段

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在控制台中看到这些字段,但我现

我只是按照指南使用以下命令将“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在控制台中看到这些字段,但我现在的问题是在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中不允许批量分配。在控制器中使用许可方法-请参见此处: