1

내가 devise/registrations/shared/_links에서 올바르게이 작업을 수행하고 있습니까?Ruby on Rails : OR 연산자가 작동하지 않습니까?

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

감사합니다 당신이 링크를 표시 할 경우

+0

답변에 언급 된 솔루션을 사용해 보셨습니까? –

+0

@AmanGarg 귀하의 도움에 감사드립니다! – hellomello

답변

2

를 표시 위에서 언급 한 문자열의 경우 또는 연산자를 사용하면 안됩니다.

위에서 언급 한 예제에서 controller_name이 등록 또는 정적 인 경우 'sessions'와 같지 않습니다. 조건이 통과되고 링크가 표시됩니다.

어느 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' %> 

그것은 당신을 위해 완벽하게 작동합니다.

+0

아, 네, 이것이 논리가 합리적입니다. 고맙습니다. – hellomello

관련 문제