我正在尝试case
用两个单独的条件编写一个语句:
controller_name
是'pages'
或'users'
controller_name
存在'static'
和action_name
存在'homepage'
这是我尝试过的:
case controller_name
when 'pages', 'users'
stylesheet_link_tag "style"
when 'static' && action_name == 'homepage'
stylesheet_link_tag "homepage"
end
第一个when
按预期工作,但第二个when
没有。我怀疑这&&
是导致问题的原因,但我无法弄清楚正确的语法。
它不起作用,因为case controller_name
将每个when
-value 与进行比较controller_name
,因此您有以下内容:
('static' && action_name == 'homepage') === controller_name
变成:
true === controller_name
# or
false === controller_name
您可以处理action_name
usingif
语句:
case controller_name
when 'pages', 'users'
stylesheet_link_tag "style"
when 'static'
if action_name == 'homepage'
stylesheet_link_tag "homepage"
else
# ...
end
end
或另一个case
:
case controller_name
when 'pages', 'users'
stylesheet_link_tag "style"
when 'static'
case action_name
when 'homepage'
stylesheet_link_tag "homepage"
when '...'
# ...
end
end
或者也许只是:
case controller_name
when 'pages', 'users'
stylesheet_link_tag "style"
when 'static'
stylesheet_link_tag action_name
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句