2015-08-18 24 views
2

我有一個簡單的部分爲我的頁腳,看起來像這樣:如何檢查使用哪個控制器在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> 

第一個鏈接,用戶可以下載用於功率報告爲CSV一些數據,但我只想要這個鏈接出現,如果reports_controller用於渲染部分。

我使用

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

以及

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

但既不顯示的鏈接嘗試。

+0

對於'reports_controller'的'action'你需要顯示那個鏈接? – Pavan

+0

所有這些都是理想的選擇。 @Eugzol回答了我的問題,我只是在等待能夠接受答案。 – nicholas79171

回答

2

您可以使用params[:controller]。此外,params[:action]將包含當前操作。

+1

'controller.controller_name'和'controller.action_name'比看參數更清潔,IMO –

1

您也可以使用controller_nameaction_name。或者具體來說,回答你的問題<% if controller_name == 'reports' %>

+0

所以我的情況看起來像'if controller_name =='reports''? – nicholas79171

+0

是的。我只是現在更新:) –