Craig Walker
Craig Walker

Reputation: 51757

AssociationTypeMismatch with Expected Type on Nested Model Forms

I'm getting this exception when doing a nested model form:

ActiveRecord::AssociationTypeMismatch in RecipesController#update 
  Ingredient(#35624480) expected, got Ingredient(#34767560)

The models involved are Recipe and Ingredient. Recipe has_many and accepts_nested_attributes_for :ingredients, which belongs_to :recipe.

I get this exception when attempting to _destroy (=1) one of the preexisting Ingredients on a nested Ingredient form for the Recipe Edit/Update.

This makes very little sense, mostly because the association types are as expected (by the exception's own admission).

What makes even less sense is that it works just fine in a functional test.

Also, it sometimes works if I re-post the form (via a browser refresh on Update). It also will work if I restart the (development) webserver.

Any ideas what might be causing this, or what I should be looking for?

Upvotes: 3

Views: 710

Answers (2)

Torsten
Torsten

Reputation: 1

This can sometimes be fixed by adding correct require's, start where the class is used in your code

Upvotes: -1

rogerdpack
rogerdpack

Reputation: 66861

this usually means "rails failed to reload successfully once" in your environment/xxx files you can change it to not reload, or allow it to reload.

Upvotes: 6

Related Questions