Witam mam dwie klasy i problem z relacją przy tych samych nazwach modeli (jeden jest w namespace)
[code]class Poll::Respondent < ActiveRecord::Base
belongs_to :respondent, class_name: ::Respondent
end
class Respondent < ActiveRecord::Base
end[/code]
Niestety gdy wywołam metode respondent, wywołane jest złe zapytanie SQL
Poll::Respondent.first.respondent
=> Poll::Respondent Load (0.5ms) SELECT "poll_respondents".* FROM "poll_respondents" WHERE "poll_respondents"."id" = 935 LIMIT 1
Podanie class_name nic nie zmienia
Wersja railsów: 3.2.11
Czy oba modela mają korzystać z tej samej tabeli? Jeśli nie, to w jednym z nich powinieneś ustawić albo prefix tabeli albo explicite nazwę tabeli na którą ma być mapowany dany model, przy pomocy set_table_name
Ogólnie jednak bym unikał nazywania modeli tak samo.
Poll::Respondent.first.class
Poll::Respondent Load (0.6ms) SELECT "poll_respondents".* FROM "poll_respondents" LIMIT 1
=> Poll::Respondent(id: integer, base_id: integer, respondent_id: integer, created_at: datetime, updated_at: datetime, status: string)
Brak parametru :class_name w definiowaniu relacji też niczego nie zmienia