2014-02-05 41 views
0

我得到這個錯誤 未定義的方法`question_answers_path」 此行的代碼@ question.answersRails:無法訪問與答案相關的問題?

我有belong_to問題的答案,問題的has_many答案,我添加了一個遷移答案 軌摹遷移add_question_id_to_answers question_id :整數

我剛剛跑了db:migrate,但無法弄清楚爲什麼該方法未定義。

CODE

我渲染<%= @ question.answers%和應答文件我做

<%= answer.answer%>

我的答案遷移add_question_id看起來像這樣

class AddQuestionIdToAnswer < ActiveRecord::Migration 
    def change 
    add_column :answers, :question_id, :integer 
    add_index :answers, :question_id 
    end 
end 

我的問題看起來像這樣

class Question < ActiveRecord::Base 
    has_many :answers 
    attr_accessible :query, :text 
    validates :query, presence: true 
end 

我的回答是這樣的

class Answer < ActiveRecord::Base 
    has_many :comments, dependent: :destroy 
    belongs_to :question 
    attr_accessible :anonymous, :answer, :commenter, :votes 
end 
+0

請粘貼必要的代碼。你所描述的應該是可行的,所以這個問題很可能在代碼中被忽視了。 –

+0

我已經爲我的答案/問題模型,我的數據庫遷移文件和出現錯誤的短片段添加了代碼,非常感謝任何幫助! – google1254

回答

1

你有沒有在config/routes.rb定義的路線?具體來說,你是否在問題中嵌套了答案?

喜歡的東西:

resources :questions do 
    resources :answers 
end 

您也可以嘗試在命令行類似rake routes | grep answers,看是否存在路線。

來源:http://guides.rubyonrails.org/routing.html

+0

啊,我想這可能是,我會試試看。另外值得注意的是,在資源中嵌套資源是否是一種好的做法?如回答評論,然後回答問題? – google1254

+1

@ google1254我會向您推薦Rails指南:「深度嵌套的資源很快就會變得繁瑣......資源永遠不會嵌套超過1級。」請特別注意上面鏈接中的第2.7.2節,並嘗試使用'shallow:true' – M00B

+0

謝謝!想知道如果我有屬於問題的答案和答案的評論,如果我的評論和答案都嵌套爲淺層資源,那麼路徑會起作用嗎? – google1254