Rails Dynamic Finders Return nil

Using Ruby on Rails - sqlite3, rails 3.2.2, ruby 1.9.3p125 (on windows
XP)

Having the record in the db:

Shop.find(123) - returns the shop
Shop.where(:id => 123) - returns the shop

but

Shop.find_by_id(123) returns nil
Shop.find_by_name(“some_name”) returns nil

So do all the dynamic finders (notice it returns nil for integer value
and for string values).
This happens with every model in every app (even gems)
Just as if I called
Shop.some_missing_method()

Why aren’t they defined?

On 5 August 2012 13:30, yaniv pr [email protected] wrote:

Shop.find_by_id(123) returns nil
Shop.find_by_name(“some_name”) returns nil

So do all the dynamic finders (notice it returns nil for integer value
and for string values).
This happens with every model in every app (even gems)
Just as if I called
Shop.some_missing_method()

That would not return nil, it would give an exception. Which is it in
your case?
Also you did not reply to my question (on the core list) about what is
shown in the log when you call find_by_id. Does it execute some sql?
If so then what?

Colin

Colin L. wrote in post #1071355:

On 5 August 2012 13:30, yaniv pr [email protected] wrote:

Shop.find_by_id(123) returns nil
Shop.find_by_name(“some_name”) returns nil

So do all the dynamic finders (notice it returns nil for integer value
and for string values).
This happens with every model in every app (even gems)
Just as if I called
Shop.some_missing_method()

That would not return nil, it would give an exception. Which is it in
your case?
Also you did not reply to my question (on the core list) about what is
shown in the log when you call find_by_id. Does it execute some sql?
If so then what?

Colin

Sorry, I can’t seem to find my own question and you reply…
There’s no exception, just nil, as if you call a non-existing method in
the console
Will check the log soon, good idea.

Appreciate your help!

Solved.

Either by upgrading to rails 3.2.6 or by removing ‘annotated_model’ gem.

Thanks.