has_and_belongs_to_many, где обе модели имеют имена подчеркивания - PullRequest
0 голосов
/ 01 марта 2012

Я работаю с Rails 3.2.1 и имею две модели CookingVenue и DiningVenue со связанными таблицами MySQL: cook_venues и Dining_venues. Я установил отношения между двумя этими моделями, которые относятся ко многим и принадлежат им, но как называется имя таблицы MySQL, представляющее объединение?

Это cooking_venues_dining_venues?

Будут ли Rails пытаться найти отношения между кулинарией, заведениями и т. Д. Или Rails действительно достаточно умен, чтобы все это решить?

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

Как вы сказали, cooking_venues_dining_venues - это имя объединяющей таблицы. После создания этой таблицы с полями cooking_venue_id и Dining_venue_id необходимо определить связь has_and_belongs_to_many в обеих моделях.

class CookingVenue < ActiveRecord::Base
  has_and_belongs_to_many :dining_venues       # foreign keys in the join table
end
class DiningVenue < ActiveRecord::Base
  has_and_belongs_to_many :cooking_venues    # foreign keys in the join table
end
0 голосов
/ 01 марта 2012

Да. Вы просто называете объединяющую таблицу в альфа-порядке, как вы это сделали, и вам следует идти вперед

...