【发布时间】:2014-05-05 17:58:16
【问题描述】:
下面是我的user.rb:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:password_expirable, :confirmable, :lockable, :timeoutable,
:omniauthable
valid_phone_regex = /(\d{3}|\(\d{3}\))(.|)\d{3}(.|)\d{4}/x
no_spaces_regex = /\S/
validates :first, presence: true
validates :last, presence: true
validates :organization, presence: true
validates :work_phone, format: {with: valid_phone_regex}
validates :mobile_phone, format: {with: valid_phone_regex}
validates :fax_phone, format: {with: valid_phone_regex}
validates :other_phone, format: {with: valid_phone_regex}
validates :email, presence: true, uniqueness: {case_sensitive: false}
validates :url, format: {with: no_spaces_regex}, presence: true
before_save { |user| user.email = email.downcase }
attr_accessible :first
attr_accessible :last
attr_accessible :salutation
attr_accessible :organization
attr_accessible :work_phone
attr_accessible :mobile_phone
attr_accessible :fax_phone
attr_accessible :other_phone
attr_accessible :address
attr_accessible :city
attr_accessible :state
attr_accessible :zip
attr_accessible :email
attr_accessible :encrypted_password
attr_accessible :reset_password_token
attr_accessible :reset_password_sent_at
attr_accessible :remember_created_at
attr_accessible :sign_in_count
attr_accessible :current_sign_in_at
attr_accessible :last_sign_in_at
attr_accessible :current_sign_in_ip
attr_accessible :last_sign_in_ip
attr_accessible :confirmation_token
attr_accessible :confirmed_at
attr_accessible :confirmation_sent_at
attr_accessible :unconfirmed_email
attr_accessible :failed_attempts
attr_accessible :unlock_token
attr_accessible :locked_at
end
我现在想要生成权威人士特定的东西,当我尝试这样做时,我收到以下错误消息:
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/activerecord-4.1.0/lib/active_record/dynamic_matchers.rb:26:in `method_missing': undefined method `attr_accessible' for User (call 'User.connection' to establish a connection):Class (NoMethodError)
from C:/projects/rails/test/app/models/user.rb:21:in `<class:User>'
当我不使用 ActiveRecord 作为基础时,通常会发生这种情况,但这里不是这种情况。有什么想法吗?
【问题讨论】:
-
在 Rails > 4 中,数据库字段不包含 attr_accessible。它们是自动包含的
-
您的 Rails 版本是 4.1.0(从您的错误消息
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/activerecord-4.1.0/获得)。attr_accessibleis not available from Rails 4+ 引入强参数代替 attr_accessible。
标签: ruby-on-rails activerecord devise pundit