ruby-on-rails 如何在按钮单击Rails上渲染局部

kqhtkvqz  于 2023-05-19  发布在  Ruby
关注(0)|答案(2)|浏览(113)

我想渲染部分按钮点击轨道。我有两个控制器
1.现场控制器
1.操作员控制器
当用户点击index.html.erb时,它将显示一个弹出窗口,其中包含Operator Controller的index.html.erb内容。
这是我的字段控制器index.html.erb的按钮:

<%= link_to "Link" ,operators_index_path(:id => field_id, :field_name=>field_name), :remote => true %>

这是Operators Controller的索引方法:

class OperatorsController < ApplicationController
  def index
    @operators = Api::AnalyticsQueryBuilderMetadataService::Operator.show(params[:id])
  end
end

这是Operator Controller的index.html.erb的内容,我想将其显示为弹出窗口:

<%if @operators['items'].empty?%>
  <div class="error-handling-page">
  <div class="dialog">
    <div>
      <h1>No Operator Found</h1>
    </div>
  </div>
  </div>
<%else%>
<table class ="table">
<thead>
    <th class ="head">Field Name</th>
    <th class ="head">Name</th>
    <th class ="head">Description</th>
</thead>
    <% @operators['items'].each do |data| %>
        
        <% @opId =  data['operators'] %>
        <% @opId.each do |value| %>
        <tr>
        <td><%= field_name %></td>
        <td><%= value['mnemonic']%></td>
        <td><%= value['description']%></td>
        </tr>
        <%end%>
    <%end%>
</tbody>
</table>
<%end%>

怎么做?

pb3s4cty

pb3s4cty1#

您可以使用 AJAX 和UJS来实现这一点。
这里是my favorite tutorial
如果你想成为最前沿的,Rails 7有Hotwire,它也可以做到这一点。有 * 许多 * Hotwire教程可通过快速谷歌搜索。

2nbm6dog

2nbm6dog2#

对于Rails,Hotwire是您应该研究的工具。特别是,您需要利用turbo帧,它允许您用控制器返回的内容替换html页面的一部分。
this page是了解Hotwire的一个很好的资源。

相关问题