views:

115

answers:

1

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?

+3  A: 

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.

rogerdpack
Hi @rogerdpack; are you referring to the config.cache_classes property?
Craig Walker
It definitely looks like a class-loading issue; I switched config.cache_classes to true in development and the problem disappeared.
Craig Walker
Looks like you fixed it. For me this meant that my plugins weren't reloading right or some odd...
rogerdpack