Rails - 调试嵌套路由

发布于 2024-09-04 19:47:45 字数 1157 浏览 11 评论 0原文

我有 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 Routes - http:// Pastebin.com/6fKUPTjq

询问控制器的代码 - http://pastebin.com/URzpmEcg

代码到评估控制器 - http://pastebin.com/HstvFTq4

任何人都可以帮我调试它吗?谢谢!

I have 2 models, Assessments and Questions. Assessments have many questions.

In routes, I have:

map.resources :assessments, :has_many => :questions
map.root :assessments

I checked rake routes, it's as expected

On the form to create a new question, I get the following error:

undefined method `questions_path' for #<ActionView::Base:0x6d3cdb8>

If I take out the form, the view loads fine, so I think it's something with the code in this view - I'm getting the error on the form_for line:

<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 Routes - http://pastebin.com/6fKUPTjq

Code to question controller - http://pastebin.com/URzpmEcg

Code to assessment controller - http://pastebin.com/HstvFTq4

Can anyone help me debug it? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

秋心╮凉 2024-09-11 19:47:45

你需要

@assessment = Assessment.find(params[:assessment_id])

在控制器中。否则,@assessmentnil

You need to have

@assessment = Assessment.find(params[:assessment_id])

in the controller. Otherwise, @assessment is nil.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文