Question

Following is my 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

I am at the point where I want to generate the pundit specific stuff, and when I try that, I get the following error message:

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>'

Typically this happens when I don't use ActiveRecord as a base, but this is not the case here. Any ideas?

Was it helpful?

Solution

Assuming you are using rails 4, attr_accessible is no longer a thing.

Strong Parameters is now the way to go. If you need to still use attr_accessible you can install Protected Attributes

OTHER TIPS

What is the version of your rails application?

With rails 4, you must use protected attributes to use attr_accessible. The recommended way is to use strong parameters.

Furthermore, you can use attr_accessible like this

attr_accessible :first, :last, :salutation, :organization, :work_phone, :mobile_phone, :fax_phone, :other_phone, :address, :city, :state, :zip, :email, :encrypted_password, :reset_password_token, :reset_password_sent_at, :remember_created_at, :sign_in_count, :current_sign_in_at, :last_sign_in_at, :current_sign_in_ip, :last_sign_in_ip, :confirmation_token, :confirmed_at, :confirmation_sent_at, :unconfirmed_email, :failed_attempts, :unlock_token, :locked_at
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top