0

このelse ifステートメントを1行に結合したい以下のコードは、現在のURLがelsifステートメントにリストされている3つのいずれでもない場合にのみ、部分的に表示します

<% if request.path == landing_path then %>
<% elsif request.path == new_company_path then %>
<% elsif request.path == edit_user_path(current_user.id) then %>
<% else %>
<%= render 'dashboard/user_controls'%>
<% end %>

私はしようとしています

<% if request.path != (landing_path || new_company_path || edit_user_path(current_user.id)   ) then %>
  <%= render 'dashboard/user_controls'%>
<% end %>

私は何を間違っていますか?

ありがとう

4

1 に答える 1

2

これはうまくいきます:

<%= render 'dashboard/user_controls' if [landing_path, new_company_path, edit_user_path(current_user)].all? {|path| request.path != path }   )%>

ただし、ヘルパーでこれを抽象化することをお勧めします。

于 2012-09-15T12:43:11.537 に答える