簡體   English   中英

我怎樣才能獲得current_page? 匹配多個動作?

[英]How can I get current_page? to match multiple actions?

我的問題是我正在嘗試做類似的事情

current_page?(controller: 'tigers', action:('index'||'new'||'edit'))

當控制器是老虎並且操作是索引,新建或編輯時,它返回true。

以上內容不會引發錯誤,只會匹配第一個操作。

救命!

更詳細,但有效:

current_page?(controller:'bikes') &&
 (current_page?(action:'index') ||
  current_page?(action:'new')   ||
  current_page?(action:'edit'))

不那么冗長,也有效:

params[:controller] == 'bikes' && %w(index new edit).include?(params[:action])

%w()是構建空格分隔字符串數組的快捷方式

使用current_page的替代方法? 方法是直接檢查params哈希:

params[:action] == ('index' || 'new' || 'edit')

如果在索引,新建或編輯時返回true。 您也可以通過params [:controller]訪問控制器。

你也可以這樣做:

if current_page?(root_path) || current_page?(about_path) || current_page?(contact_path) || current_page?(faq_path) || current_page?(privacy_path)

注意:請勿在括號前留空格,否則將無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM