2013-05-20 6 views
1

У меня есть две модели: User и QuestionEvent.Неопределенный метод Ошибка в has_many Association

class User < ActiveRecord::Base 
    ... 
    has_many :questions 
    has_many :asked_questions, :class_name => 'QuestionEvent', :foreign_key => 'questioner_id' 
    has_many :received_questions, :class_name => 'QuestionEvent', :foreign_key => 'respondent_id' 
    end 

    class QuestionEvent < ActiveRecord::Base 
    ... 
    belongs_to :question 
    belongs_to :questioner, :class_name => 'User' 
    belongs_to :respondent, :class_name => 'User' 
    end 

Когда я называю QuestionEvent.first.questioner или QuestionEvent.first.respondent, я получаю ожидаемый пользователь. Тем не менее, вызов User.first.asked_questions дает мне:

NoMethodError: undefined method `asked_questions' for #<User:0x007fc687d53ae0> 

Может кто-нибудь увидеть, что ошибка, которую я делаю здесь?

Моя схема базы данных для QuestionEvent является:

t.integer :question_id 
    t.integer :questioner_id 
    t.integer :respondent_id 
+0

Вы запускаете миграцию с момента добавления столбца? – Russell

+0

Не могли бы вы показать свою схему db? – yoones

+0

@ Russell У меня есть, и он все еще не работает –

ответ

6

Вы сказали, что решили проблему, перезапустив консоль. Все в порядке, но лучше всего запустить команду reload!. Таким образом, вам не нужно перезапускать.

+0

Я бы также добавил повторное выполнение запроса – Spasm

2

Вы должны перезагрузить рельсы консоли, чтобы принять во внимание новые изменения.

Смежные вопросы