Ruby on rails RubyonRails:还是Desive中的操作员不工作?
我在Desive/registrations/shared/u链接中是否正确执行了此操作Ruby on rails RubyonRails:还是Desive中的操作员不工作?,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.2,devise,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.2,Devise,我在Desive/registrations/shared/u链接中是否正确执行了此操作 <%- if controller_name != 'sessions' || controller_name != 'registrations' || controller_name != 'static' %> <%= link_to "Sign in", new_session_path(resource_name) %><br /> <% end -%
<%- if controller_name != 'sessions' || controller_name != 'registrations' || controller_name != 'static' %>
<%= link_to "Sign in", new_session_path(resource_name) %><br />
<% end -%>
当我测试后,它显示登录
<%= controller_name %>
并显示注册
或静态
谢谢如果只想在控制器名称不等于所述字符串时显示链接,则不应使用或运算符 在上面提到的示例中,如果controller_name是registrations或static,则它不等于“sessions”。条件被传递,并显示链接 给定字符串数组中不存在check controller\u名称:
<%= link_to "Sign in", new_session_path(resource_name) unless %w(sessions registrations static).include?(controller_name) %>
<%= link_to "Sign in", new_session_path(resource_name) if controller_name != 'sessions' && controller_name != 'registrations' && controller_name != 'static' %>
或使用和运算符:
<%= link_to "Sign in", new_session_path(resource_name) unless %w(sessions registrations static).include?(controller_name) %>
<%= link_to "Sign in", new_session_path(resource_name) if controller_name != 'sessions' && controller_name != 'registrations' && controller_name != 'static' %>
这对你来说应该是完美的。你尝试过答案中提到的解决方案吗?@AmanGarg谢谢你的帮助!啊,是的,这是有道理的逻辑。非常感谢。