【问题标题】:Saving attributes fields in devise User model in Rails 4在 Rails 4 的设计用户模型中保存属性字段
【发布时间】:2014-09-19 03:18:41
【问题描述】:

我刚刚按照this 指南使用以下命令将“firstname”和“secondname”列添加到 Devise User Model。

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/devise/registrations 的 new.html.erb 中,但它不起作用,因为我注意到我注册的用户的 firstname 和 secondname 属性为零。

我能做什么?,我猜是关于 attr_accessible 步骤的,但我找不到。

任何帮助将不胜感激。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 devise


    【解决方案1】:

    我可能对您的帖子感到困惑,但我相信(如链接文档的第 3 步所述)您需要将以下内容添加到您的 user.rb:

    attr_accessible :firstname, :secondname
    

    【讨论】:

    • 是的,也许我表达的不是很好,英语不是我的第一语言,但是回复你的评论......如果我在我的 user.rb 中添加 attr_accessible :firstname, :secondname 我得到一个错误提示:“#<0x007fd0dc554678>
    【解决方案2】:

    您需要为设计配置允许的参数。在 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 migration add_fields_to_user firstname:string secondname:string

    这会在里面生成一个文件:

    db/migrate/20152347823846(just numbers here)_add_fields_to_user.rb

    您还可以编辑该文件以添加字段,然后运行rake db:migrate

    我知道回复晚了,但迟到总比没有好。

    【讨论】:

      猜你喜欢
      • 2014-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多