Как использовать ассоциации rails из консоли Rails? - PullRequest
0 голосов
/ 24 января 2019

У меня есть две активные записи, которые называются Ингредиенты и Категория . Я должен выполнить следующую команду в консоли rails, которая добавила новый элемент с именем Protein Bread в категорию Тип хлеба , при создании категории Тип хлеба в в то же время:

Ingredient.create!(name: 'Protein Bread', price: 2.5, categories: 
[Category.new(title: 'Bread Type')])

Теперь мой вопрос: как я могу добавить новый элемент, имя которого будет Хлеб без глютена , например, в категории Тип хлеба? Я попробовал:

Ingredient.create!(name: 'Glutein-free Bread', price: 0.2, category: Bread 
Type)

Но я получаю сообщение об ошибке:

SyntaxError: (irb):4: syntax error, unexpected tCONSTANT, expecting 
keyword_do or '{' or '(' 

У кого-нибудь есть идеи, как это сделать? Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 24 января 2019
@category = Category.find_by(title: "Bread Type")
@category.ingredients

, которая показывает категорию, связанную со всеми ингредиентами, которая используется при наличии связи между двумя таблицами.

Теперь вы можете создавать категории, связанные с ингредиентами

@category.ingredients.create!(name: "example", price: 202)
0 голосов
/ 24 января 2019

для лучшего чтения. Я думаю, что лучше сначала создать / найти категорию, чем создавать ингредиенты

# if category name already created
@category = Category.find_by_title("Bread Type")
@category.ingredients.build(name: 'Glutein-free Bread', price: 0.2)
@category.ingredients.build(name: 'other_item_name', price: 0.0)

# if it's new name category
@category = Category.create("Other Type")
# you can continue same as above
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...