2012-06-10 51 views
3

有插入在CURRENT_PAGE?()方法的一個控制器的所有頁面的方法嗎?CURRENT_PAGE?方法

<%if (!current_page?(:controller=>'users'))%> 
    ... 
<%end> 

如果我不插入:action屬性不工作!

我一定要插入屬性:行動,如果我想爲一個特定的動作控制。

我會考慮所有的控制器命名用戶的頁面。

回答

1

而不是使用current_page的,你可以直接檢查控制器名稱:

<% if controller.controller_name != "users" %> 
... 
<% end %> 
+2

'controller_name'足夠,並建議作此用途。 – jdoe

+0

就這樣。不知道這種方法存在 - 謝謝! –

+0

非常感謝您的幫助! –

0

params[:controller] != 'users'

+0

'controller_name'建議用於此目的。請參閱第3.3節:http://guides.rubyonrails.org/action_controller_overview.html#routing-parameters – jdoe

+0

但稍慢一點) –

+1

不是,它不是。事情是相反的。 'controller_name'在第一次調用時(它發生在頁面呈現之前)緩存它的結果,所以它只是在下一次調用時返回它的實例變量。調用'params [:controller]'需要一些時間來查找。 – jdoe

相關問題