У меня есть модель User, которая используется для хранения всех пользователей. В моих приложениях, наставниках и учениках есть два типа пользователей, но они имеют одинаковую структуру.Rails динамический внешний ключ для отношений has_many
Я хочу сделать что-то вроде этого.
has_many :requests, :foreign_key => mentor? ? 'mentor_id' : 'student_id', :class_name => 'Request'
У меня есть наставник? метод в модели, но он дает мне ошибку method_missing. Я предполагаю, что это потому, что он ищет метод в dynamic_matchers.rb
Это ошибка дает
/var/lib/gems/1.9.1/gems/activerecord-3.2.13/lib/active_record/dynamic_matchers.rb:55:in 'method_missing': undefined method 'mentor?' for #<Class:0x00000001b40630> (NoMethodError)
Есть ли способ пойти об этом, не делая отдельную модель для студентов и Mentor ? Я чувствую, что было бы лишним, если бы они использовали одни и те же поля.
Почему вы хотите различные столбцы идентификаторов? Эта логика должна быть только в пользовательской модели, а не на запросах. И то, что вы хотите, невозможно ...: D – jokklan