首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails 4中的attr_accessible

rails 4中的attr_accessible
EN

Stack Overflow用户
提问于 2014-10-26 10:24:03
回答 1查看 1.1K关注 0票数 1

我正在做单播rails,attr_accessible函数出现了问题。我已经在rails 4(gem 'protected_attributes')中安装了它,并将其与simple_form一起使用。

但问题是,当我用名字更新我的表单时,它就不记得了!但是它说它成功地更新了??

这是我的user.rb

代码语言:javascript
复制
class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  attr_accessible :email, :password, :password_confirmation, :remember_me, :name
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-26 13:04:14

由于您使用的是Devise,所以可以删除整个attr_accessible行(以及strong_parameters gem,请参阅下面的更多内容)。Devise提供了控制器,它已经为您办理了注册。

如果要向用户添加其他属性,可以使用自定义控制器子类Devise::RegistrationsController

代码语言:javascript
复制
# app/controllers/registrations_controller
class RegistrationsController < Devise::RegistrationsController

  private

  def sign_up_params
    params.require(:user).permit(:name, :email, :password, :password_confirmation)
  end

  def account_update_params
    params.require(:user).permit(:name, :email, :password, :password_confirmation, :current_password)
  end
end

然后,您需要告诉Devise路由到您的自定义控制器:

代码语言:javascript
复制
# config/routes.rb
devise_for :users, :controllers => { registrations: 'registrations' }

PS。我还建议删除strong_parameters gem并使用开箱即用的Rails 4强参数。在模型级别上有几个已知的白名单参数问题(例如,对于不同的操作,不同的参数)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26571978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档