我的问题是我尝试做类似
的事情current_page?(controller: 'tigers', action:('index'||'new'||'edit'))
当控制器是老虎并且操作是索引,新建或编辑时返回true。
上述内容不会引发错误,只会与第一个操作匹配。
帮助!
答案 0 :(得分:15)
更详细,但有效:
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()是构建空格分隔字符串数组的快捷方式
答案 1 :(得分:4)
使用current_page的替代方法?方法是直接检查params哈希:
params[:action] == ('index' || 'new' || 'edit')
如果在索引,新建或编辑时返回true。您也可以通过params [:controller]访问控制器。
答案 2 :(得分:3)
您也可以这样做:
if current_page?(root_path) || current_page?(about_path) || current_page?(contact_path) || current_page?(faq_path) || current_page?(privacy_path)
注意:请勿在括号前留空格,否则无法使用。