为什么其他不起作用?打印只是"8"但不是"10".哪里出错了?
<% if controller.controller_name == ('home' || 'products') %>8<% else %>10<% end %>
Run Code Online (Sandbox Code Playgroud)
||如果不是nil或者,运算符返回第一个操作数false.否则返回第二个操作数.所以,在你的情况下,它总是返回'家'而不是'产品'.
你可能意味着像
<%= controller.controller_name.in?('home', 'products') ? 8 : 10 %>
Run Code Online (Sandbox Code Playgroud)
一个简单的+ 1衬垫解决方案将解决您的问题,如下所示
if %w[home products].include? controller.controller_name
Run Code Online (Sandbox Code Playgroud)