1

我在设计/注册/共享/_links 中是否正确执行此操作?

<%- if controller_name != 'sessions' || controller_name != 'registrations' || controller_name != 'static' %>
  <%= link_to "Sign in", new_session_path(resource_name) %><br />
<% end -%>

我测试后显示登录

<%= controller_name %>

它显示registrationsstatic

谢谢

4

1 回答 1

2

如果您只想在 controller_name 不等于提到的字符串时显示链接,则不应使用OR运算符。

在上面提到的示例中,如果 controller_name 是注册或静态,则它不等于“会话”。条件通过并显示链接。

要么检查给定字符串数组中的控制器名称不存在:

<%= link_to "Sign in", new_session_path(resource_name) unless %w(sessions registrations static).include?(controller_name) %>

或使用 AND 运算符:

<%= link_to "Sign in", new_session_path(resource_name) if controller_name != 'sessions' && controller_name != 'registrations' && controller_name != 'static' %>

它应该非常适合您。

于 2013-09-07T19:35:00.713 回答