Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 不同模型显示视图中表单的Rails表单验证失败_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 不同模型显示视图中表单的Rails表单验证失败

Ruby on rails 不同模型显示视图中表单的Rails表单验证失败,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有一个表单,非常类似于Rails入门指南中的表单,其中注释表单显示在不同模型的show视图中。如果模型验证失败,我在渲染显示视图时会遇到问题,因为当显示视图重新渲染时,我会丢失另一个模型的ID,并出现“缺少必需的键:[:ID]”错误。它还会重定向到错误的url topics/11/posts,而不仅仅是topics/11 我怎样才能让它工作 控制器中无效窗体的呈现路径为 format.html { render template: "topics/show" } 表格是 <%= for

我有一个表单,非常类似于Rails入门指南中的表单,其中注释表单显示在不同模型的show视图中。如果模型验证失败,我在渲染显示视图时会遇到问题,因为当显示视图重新渲染时,我会丢失另一个模型的ID,并出现“缺少必需的键:[:ID]”错误。它还会重定向到错误的url topics/11/posts,而不仅仅是topics/11

我怎样才能让它工作

控制器中无效窗体的呈现路径为

format.html { render template: "topics/show" }
表格是

<%= form_for([topic, topic.comments.build]) do |f| %>
  <h2>Add new discussion topic</h2>
  <p>
    <%= f.text_field :title,  class: "form-control" %>
  </p>
  <p>
    <%= f.text_area :body, :rows => 6,  class: "form-control" %>
  </p>
  <p>
     <%= f.submit 'Submit', :class => 'btn' %>
  </p>
<% end %>

添加新的讨论主题

6类:“表单控件”%>

'btn'>


您提到的是“显示”页面,但当验证失败时,通常会重新呈现“新建”或“编辑”页面;这就是你的意思吗?还有,当你说你失去了另一个“其他模型”的ID时,你是什么意思;哪一个是“其他模型”?我只是删除了我的答案,因为我不确定。但是我想尝试format.html{render template:“topics/show”,:topic=>{topic_id}}@PaulRichter“其他模型”的show页面是显示评论表单的地方。没有新页面或编辑页面。这就像堆栈溢出,注释输入在问题“显示”页面中。好的,谢谢你的评论,但我只是用Ajax重新编写了表单验证,这样我就不必处理模板呈现。这要容易得多。