我正在构建一个表单来创建一个以1个问题开头的考试对象,我希望在另一个问题字段中有一个“新问题”按钮。
这个表单只有单个问题很好用,当我尝试在另一个问题字段中创建指向AJAX的链接时,我的问题就出现了。如果我使用类似的东西:
<%= link_to "New Question", new_exam_question_path(@exam), :remote => true %>
rails会抛出无路由匹配错误,因为@exam实际上还不存在。如果我用Exam.find(10)替换@exam,它将正常工作以生成考试10的链接。
理想情况下,我希望能够根据需要在尽可能多的问题中使用AJAX。 我的单个问题正在创建如下,我可以重新使用该代码进行AJAX调用:
<%= form.fields_for :questions do |f| %>
<div class="edit_questions">
<div class="exam_question">
<%= f.hidden_field :question_type %>
<%= f.label "Question" %><br/>
<%= f.text_field :copy %>
<div>
<% if !f.object.id.blank? %>
<%= link_to "Delete", exam_question_path(@exam, f.object), :method=>:delete, :class => "button" %>
<% end %>
</div>
</div>
</div>
<% end %>
答案 0 :(得分:1)
解决:导演演员196和197为您提供解决问题所需的所有背景。
这绝对不是最简单的修复,但这些轨道演员与我正在尝试的非常类似,所以我可以非常密切地关注。遵循演员表中显示的命名约定非常重要,因为在此过程中会动态构建,如果您不遵循命名约定,它将会中断。
答案 1 :(得分:0)
为什么不在呈现视图之前在控制器中实例化空检查对象?
@exam = Exam.new