5

我正在尝试根据“用户”是否是“成员”来构建条件。基本上我需要一种方法来检查 current_user.id 是否与任何成员的任何 user_id 匹配。我现在拥有的非工作代码是:

<% if current_user = @page.members %>
  you can view this content.
<% end %>

我正在寻找类似以下内容的内容:“如果 current_user.id 存在于任何成员的“user_id”中。”

4

4 回答 4

13

像这样,根据您问题中的字段名称:

<% if @page.members.map(&:user_id).include? current_user.id %>
  You can view this content
<% end %>
于 2012-04-23T23:50:07.823 回答
5

假设您的@page.members变量包含一个数组,您可以使用以下include?方法:

<% if @page.members.include? current_user %>
  you can view this content.
<% end %>

如果您使用的是 id 数组,您当然需要稍微更改测试以查找当前用户的 id:

<% if @page.members.include? current_user.id %>
  you can view this content.
<% end %>
于 2012-04-23T23:45:48.927 回答
1
@member_ids = @page.members.map{|m| m.id()}

然后检查以下情况

@memeber_ids.include? current_user.id()
于 2012-04-23T23:47:00.367 回答
0

之前说过include?应该做的事情。

我只是想告诉你一个名为CanCan的 gem ,它可以让你轻松访问授权“助手”。

为什么你应该使用CanCan而不是做你实际在做的事情?

  1. 大多数时候不要重新发明轮毂,这是一种愚蠢的做法。
  2. 您将业务逻辑放在视图上(不好的做法)。
  3. CanCan 很可能是在考虑安全性以及考虑所有最佳实践的基础上开发的。
  4. 您节省了一些开发时间。

对不起,如果我重复了自己。

于 2012-04-24T00:06:22.117 回答