The story is that I have two models Survey & Email Template as defined in a sample app:
When I’m calling
survey.email_templates, it fails, and I have the following error:
ActiveRecord::StatementInvalid: PG::UndefinedFunction: ERROR: operator does not exist: character varying = integer
LINE 1: …M “email_templates” WHERE “email_templates”.“survey_id” = 1
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
: SELECT “email_templates”.* FROM “email_templates” WHERE “email_templates”.“survey_id” = 1
I’m not sure whether I should treat it as a rails bug, and that rails should quote this integer, or not. I could look further into AR, if you feel, that this case should be handled. Otherwise, I’ll be looking for a different solution for this challenge.
Also, I may mention source of this issue. Earlier our app was on EngineYard, where we had custom casting for this, so whenever there was an integer, it was casted into a string. Then we moved to RDS AWS, and unfortunately there we can’t create castings. I dropped all of them, and I found this case. So I thought that it might be treated as a rails bug.