Ruby on rails RubyonRails:还是Desive中的操作员不工作?

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 -%

我在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 -%>


当我测试后,它显示登录

<%= 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谢谢你的帮助!啊,是的,这是有道理的逻辑。非常感谢。