0

Мне нужно создать модель объединения CarStoreTracker для Car and Store, у которой есть много друг от друга.Rails 3.1 Модель с has_many через Naming Issue - ThisIsModelName.rb

class Car < ActiveRecord::Base 
    has_many :carstoretrackers  # It seems to work 
    has_many :stores, :through => :carstoretrackers # I bet the naming is not being recognized by Rails convention 
end 

class Store < ActiveRecord::Base 
    has_many :carstoretrackers  # It seems to work 
    has_many :cars, :through => :carstoretrackers # Same issue 
end 

class CarStoreTracker < ActiveRecord::Base 
    belongs_to :store 
    belongs_to :car 
end 

CarStoreTracker имеет

car_id and store_id on its table. 

Когда я бегу:

> CarStoreTracker.first.car 
> CarStoreTracker.first.store 

они оба работают.

Но

Store.first.cars Car.first.stores Store.carstoretrackers Car.carstoretrackers

Non из них работают. NameError: неинициализированная константа «CURRENTMODEL» :: Carproducttracker

Итак, я отказался от CarProductTracker, и я просто использовал имя Tracker для модели, и все работает.

Что происходит? Что такое соглашение о названиях для Rails в этом случае?

ответ

5

Необходимо указать символы подчеркивания после каждого слова при определении has_many и других отношений.

Так было бы: car_store_trackers

+0

Спасибо за подсказку. Трудно было это выяснить. –

Смежные вопросы