如何检查哪个控制器用于在 Rails 中渲染部分?

nic*_*171 3 ruby-on-rails

我的页脚有一个简单的部分,如下所示:

<footer class="footer">
  <nav>
    <ul>
      <li><%= link_to "Download History", report_histories_path(format: "csv") %>
      <li><%= link_to "Help", help_path %></li>
      <li><%= link_to "About", about_path %></li>
    </ul>
  </nav>
</footer>
Run Code Online (Sandbox Code Playgroud)

reports_controller第一个链接允许用户下载一些用于以 CSV 形式生成报告的数据,但我只希望在用于呈现部分内容时显示此链接。

我尝试过使用

<% if params[:reports] %>
  <li><%= link_to "Download History", report_histories_path(format: "csv") %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

<% if current_page?(url_for(:controller => 'reports')) %>
  <li><%= link_to "Download History", report_histories_path(format: "csv") %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

但都不显示链接。

Eug*_*Zol 5

你可以用params[:controller]它。此外,params[:action]还将包含当前操作。

  • “controller.controller_name”和“controller.action_name”比查看参数更清晰,IMO (2认同)