【发布时间】:2019-08-10 08:25:59
【问题描述】:
我有两个控制器,Boards 和 Sections。 Sections 嵌套在Boards 中,一个Board 可以有多个Sections。在 Boards 的 Show 页面上,我希望能够创建一个新的 Section 并对其进行编辑。
目前我有在Boards 显示页面上创建一个新的Section 的表单,但我还没有找到将这个表单重用于编辑方法的方法。
Boards#show
<%= render 'sections/shared/form', board: @board, section: @section %>
<br>
<% @board.sections.order(id: :asc).each_with_index do |section, index| %>
<%= "#{index + 1}. #{section.title}" %>
<% if policy(section).edit? %>
<%= link_to "Edit", edit_board_section_path(@board, @board.sections[index]) %>
<% end %>
<% if policy(section).destroy? %>
<%= link_to("Delete", board_section_path(@board, @board.sections[index]), method: :delete) %>
<% end %>
<br>
<% end %>
表格部分
<%= simple_form_for([@board, @section]) do |f| %>
<%= f.input :title %>
<%= f.submit "Save" %>
<% end %>
edit_board_section_path 基本上复制了部分表单。
如何使某个部分旁边的“编辑”按钮允许我在 Boards#show 页面本身上编辑一个部分?我不想重新连接到另一个页面来编辑表单,而是直接在 Boards#show 上显示它。
【问题讨论】:
-
你能显示你当前的编辑模板吗?
-
@arieljuod 这是编辑模板:
<%= simple_form_for([@board, @section]) do |f| %> <%= f.input :title %> <%= f.submit "Save changes" %> <% end %> -
我没有得到你想要达到的目标。为什么不能只在编辑模板上渲染部分?
-
对不起,我可能没说清楚。我只想在用户单击“编辑”后在 Boards#show 页面上显示编辑模板。理想情况下,我不想重定向到另一个页面,而是在单击“编辑”后让此编辑表单直接出现在当前页面上。
-
我添加了一个按钮/javascript 来显示切换编辑表单的样子
标签: javascript ruby-on-rails ajax forms