Can I get some help with my code here?

(Jeffrey) #1


Not sure if this is the appropriate place to put this but I asked a question on Stack Overflow and got a bit of interest but now my question seems to have been buried. Just wondering if I could get some help through here?

Here’s a link to my question:

So the items have a shopping_list_id attached but the shopping-list item itself won’t save for some reason.

Please let me know if there’s a more appropriate place to put this.



(Anton Katunin) #2

Will reply here and if works repost to SO.

As per suggested solution you need to change line

@shopping_list =


@shopping_list = ShoppingList.create(shopping_list_params)

Also, update the line, quantity: ingredient.quantity, unit: ingredient.unit, shopping_list_id:

to (remove shopping_list_id param as it will be automatically set for you), quantity: ingredient.quantity, unit: ingredient.unit)

If that doesn’t work maybe you could upload the project so it’s easier to debug

(Jeffrey) #3

Ahh, thank you! - I will try this out tonight.

(Jeffrey) #4

Hi Anton,

Unfortunately it didn’t work, when I use create instead of new, the same error gets hung up there as opposed to in the ‘respond_to’ block.

I really don’t get why the shopping_list controller is taking issue with the shopping_list_id. Wouldn’t its id parameter name just be, id instead of shopping_list_id? My items table does have a shopping_list_id column name, would that have anything to do with it?

Here’s a link to the repo if you want to have a look!

I’ve edited the shopping_lists controller to reflect the above changes.



(Anton Katunin) #5

The issue is that Meal model has belongs_to :shopping_list but it doesn’t have column shopping_list_id.

So when you run

ShoppingList.create(meal_ids: ['1'])

Rails tries to create Meal model and link it back to the ShoppingList, but it can’t since there is no such attribute and error tells you that ActiveModel::MissingAttributeError. To fix create a migration e.g.:

add_column :meals, :shopping_list_id, :integer

(Jeffrey) #6

Thank you very much @antulik, this worked!