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"取决于登录的配置文件!

活动也是来自#each语句 的局部变量


该视图仅在具有不同配置文件(企业和经理)的两个用户之间共享,具有以下约束:

  • 如果经理是活动的所有者,则应显示DAMANAGER

  • 当我看到经理时,除非持有人是经理,否则它应该显示一个链接以显示拥有此活动的企业。

  • 当我将其视为企业时,它应该显示,谁拥有该活动,持有人姓名。没有链接。

所以我自己挣扎并从那个重构到这个,这就是我现在得到的:

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

但这并没有显示DAMANAGER,而且还显示了企业id与经理的平等id,因为它将经理传递给了managers_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 回答