1

devise/registrations/shared/_links でこれを正しく行っていますか?

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

テストするとサインインが表示されます

<%= controller_name %>

表示されregistrationsたり、static

ありがとう

4

1 に答える 1

2

controller_name が前述の文字列と等しくない場合にのみリンクを表示する場合は、OR演算子を使用しないでください。

上記の例では、controller_name が registrations または static の場合、「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' %>

それはあなたにとって完璧に機能するはずです。

于 2013-09-07T19:35:00.713 に答える