我有两个控制器杂志和文章,文章是杂志的嵌套路线。当我在/magazines/show
那里时,有一个创建文章的基本表格
<%= form_for @article, :url => magazine_articles_path(@magazine), remote: true do |f| %>
<%= render 'shared/error_messages', target: @article %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
当这个提交它被发送到文章控制器。在文章控制器中,我呈现了一个重新呈现此表单的操作(如果有任何错误,我正在重新呈现表单以消除错误)
$('#id').html('<%= escape_javascript render partial: 'create_article' %>');
但是,这会将表单的操作更改/magazines/:id/articles
为/magazines/:id
初始形式:
<form id="new_article" class="new_article" method="post" data-remote="true" action="/magazines/1/articles" accept-charset="UTF-8">
重新渲染后的表格:
<form id="edit_article_3" class="edit_article" method="post" data-remote="true" action="/magazines/1/articles" accept-charset="UTF-8">
如果我再次尝试提交此表单,这会打乱我的路由并给我带来路由错误。我猜这是因为新@article
的来自文章控制器。非常感谢有关这种情况如何发生的更多细节以及解决此问题的干净解决方案。非常感谢!