Есть ли простой способ добавить данные в таблицу отношений в Rails? - PullRequest
0 голосов
/ 11 июля 2011

У меня есть таблица блюд, таблица ингредиентов и таблица блюд_ для объединения блюд и ингредиентов (см. Ниже). Каждый раз, добавляя ингредиент в блюдо, я хочу увеличить или добавить количество ингредиентов в таблицу dish_ingredient. Мне удалось обновить номер, выполнив:

dish.dish_ingredients[counter].number_of_ingredients = new number

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

class Dish < ActiveRecord::Base
   has_many :dish_ingredients
   has_many :ingredients, :through => :dish_ingredients
end

class Ingredient < ActiveRecord::Base
   has_many :dish_ingredients
   has_many :dishes, :through => :dish_ingredients
end

class DishIngredient < ActiveRecord::Base
   belongs_to :dish
   belongs_to :ingredient
end

# in the database table dish_ingredient contains a field 'number_of_ingredients' 
# that I want to update when ingredients are modified or added to dish.

Ответы [ 2 ]

0 голосов
/ 12 марта 2014

Что не так с:

some_dish.ingredients.count
0 голосов
/ 11 июля 2011

Вы пробовали

class DishIngredient < ActiveRecord::Base  
  belongs_to :dish
  belongs_to :ingredient, :counter_cache => true
end

?Для этого требуется наличие атрибута ingredients_count в таблице dish_ingredient.Rails автоматически обрабатывает обновления счетчика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...