rails:current_page中的多个OR语句?

时间:2016-08-29 16:09:37

标签: ruby-on-rails-4

为什么这个代码集li class只对spree.account_url有效并忽略其余的,即使只有其中一个有效?

<li class='<%= "active" if current_page?(spree.account_url || edit_user_newsletter_path || orders_path || nilecard_path) %>'>

1 个答案:

答案 0 :(得分:1)

这不像你想象的那样有效。

spree.account_url || edit_user_newsletter_path
如果spree.account_url为nil,则

edit_user_newsletter_path将返回。它不是零,所以spree.account_url总是优先返回。

更好的是......

<li class='<%= "active" if [spree.account_url, edit_user_newsletter_path, orders_path, nilecard_path].map{|p| current_page?(p)}.any? %>'>