我需要一些有关嵌套资源操作的帮助。我有三个嵌套资源:作业、问题和答案。我目前只是试图让编辑/更新方法适用于问题控制器。关系是这样的:Jobs has_many questions 和 Questions 属于 Jobs。
我正在对问题使用编辑操作,但出现错误:
No route matches "/jobs/1/questions"
我不知道为什么。
我目前将此代码作为我的问题控制器中的编辑和更新操作:
def edit
@job = Job.find(params[:job_id])
@question = @job.questions.find(params[:id])
end
def update
@job = Job.find(params[:job_id])
@question = @job.questions.find(params[:id])
if @question.update_attributes(params[:question])
redirect_to(@question)
end
end
楷模:
class Job < ActiveRecord::Base
has_many :questions
class Question < ActiveRecord::Base
belongs_to :job
路线:
resources :jobs do
resources :questions do
resources :answers
end
end
我不明白的事情是:a)为什么它会将我重定向到问题索引路径,当我没有将它重定向到那里时,b)它说这不是一个有效的路线,但如果我刷新那个确切页面正确加载的 URL。
我尝试了多种选择,但我无法找出解决方案。
谢谢您的帮助。如果您需要更多信息,请告诉我。
ps 这是我的 rake 路线:https ://gist.github.com/1077134