【发布时间】:2010-06-09 22:43:25
【问题描述】:
我有 2 个模型,评估和问题。评估有很多问题。
在路线中,我有:
map.resources :assessments, :has_many => :questions
map.root :assessments
我检查了 rake 路线,和预期的一样
在创建新问题的表单上,我收到以下错误:
undefined method `questions_path' for #<ActionView::Base:0x6d3cdb8>
如果我取出表单,视图加载正常,所以我认为这与视图中的代码有关-我在 form_for 行收到错误:
<h1>New question</h1>
<% form_for [@assessment, @question] do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :content %><br />
<%= f.text_field :content %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
<%= link_to 'Cancel', assessment_path(@assessment) %>
Rake 路由 - http://pastebin.com/6fKUPTjq
询问控制器的代码 - http://pastebin.com/URzpmEcg
评估控制器的代码 - http://pastebin.com/HstvFTq4
谁能帮我调试一下?谢谢!
【问题讨论】:
-
我认为正确的方法应该是assessment_questions_path。不知道为什么会调用 questions_path。
-
是的 - 我认为assessment_questions_path 应该这样称呼,但我不确定为什么不是这样。
-
你能粘贴控制器的代码吗?
-
完成 - 我添加了控制器代码。
-
我不完全确定,但你知道 Rails 是否在嵌套路由的情况下自动为你定义
@assessment吗?它可能为零。
标签: ruby-on-rails rails-models nested-routes