1

共有ビューに次のifステートメントがありました。

<% if activity.holder.user.profile_type == "Manager" %>
  DAMANAGER
<% elsif profile == "managers" %>
  <%= link_to activity.holder.name, managers_enterprise_path(activity.holder) %>
<% else %>
  <%= activity.holder.name %>
<% end %>

profile は、ログインしているプロファイルに応じて"enterprises"または になるローカル文字列変数です!"managers"

activity も#eachステートメント からのローカル変数です


ビューは、異なるプロファイル (Enterprise と Manager) を持つ 2 人のユーザー間でのみ共有されます。次の制約があります。

  • マネージャーがアクティビティの所有者である場合は、それが表示されますDAMANAGER

  • 所有者がマネージャーでない限り、マネージャーとして表示されている場合、このアクティビティを所有する企業を表示するリンクが表示されます。

  • 私が企業として見ているときは、誰が活動を所有しているか、所有者名を表示する必要があります。リンクなし。

だから私は自分自身に苦労し、それからこれにリファクタリングしました。それが私が今得たものです:

<%= link_to_if (profile == 'managers'), activity.holder.name, managers_enterprise_path(activity.holder) %>

しかし、これは表示されずDAMANAGER、さらに、管理者を に渡すため、企業はid管理者と同じであることが示されます。質問は:idmanagers_enterprise_path

どうすれば改善できますか?

事前に感謝します。さらにコードが必要な場合は教えてください。

4

1 に答える 1

0

なしでそれを行うための保守可能な方法がわかりませんif ... else ... end。このelsif ... else ... end部分は次のものに置き換えることができますlink_to_if

<% if activity.holder.user.profile_type == "Manager" %>
  DAMANAGER
<% else %>
  <%= link_to_if profile == "managers", activity.holder.name, managers_enterprise_path(activity.holder) %>
<% end %>
于 2012-08-28T03:10:14.093 に答える