has_many through: Question

I am building a Lunch Ordering Module for my app and I have these models currently

Menu

:menu_date

:menu_type

Meal

:name

:mentree_id

:available_daily

Mentree

:name

Msides

:name

Mdrink

:name

Right now I am using a has_and_belongs_to_many on

meals_menus

mdrinks_menus

meals_msides

What I need to have is a Meal of the Day as part of the Menu and I am thinking I should use a has_many through:

But I can’t think how to structure this correctly

My goal is to have the cafeteria be able to turn on and off meals and drinks on the menu based on availability, so when the class orders lunch they can only choose the available meals.

However I have a Lunch Calendar that I want to show the meal of the day.

Suggestions on the proper Rails structure?

John

Hi John,

you might consider doing it this way:

calendars has_many events has_and_belongs_to_many menus has_and_belongs_to_many categories

Calendar: name

Event: description + when_ical*

Menu: name + description + photos** + ancestry***

Category: name

  • ical format

** a Rails attachments construct

*** Rails gem affording tree-like structures

cheers
Walther

I think I got it… I knew it had to be simple in Rails to do that…

Just had to add

belongs_to :motd, class_name: ‘Meal’, foreign_key: :motd_id

has_and_belongs_to_many :meals

has_and_belongs_to_many :mdrinks

Now I have a Meal of the Day as well as Daily Meals

John