jeudi 9 juin 2016

User has_many association not working (error:Could not find the association :user_categories in model Category)

I have three models and here they are when I try to create a has_many. I basically want my users (using devise) to have many categories. And categories to have many users.

user.rb

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable,
         :omniauthable

  has_many :user_categories
  has_many :categories, through: :user_categories


  acts_as_messageable

  def mailboxer_email(object)
    email
  end
end

userCategory.rb

class UserCategory < ActiveRecord::Base

  belongs_to :user
  belongs_to :category

  accepts_nested_attributes_for :categories

end

Category.rb

class Category < ActiveRecord::Base

  has_many :user_categories
  has_many :user, through: :user_categories

  validates :name, presence: true, length: {minimum: 3, maximum: 25}
  validates_uniqueness_of :name
end

when I run category.users << user I get this error:

ActiveRecord::HasManyThroughAssociationNotFoundError: Could not find the association :user_categories in model Category

Aucun commentaire:

Enregistrer un commentaire