Rails检查User Id是否在Array中

时间:2012-04-23 23:41:49

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

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

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

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

4 个答案:

答案 0 :(得分:13)

基于你问题中的字段名称,这样的事情:

<% if @page.members.map(&:user_id).include? current_user.id %>
  You can view this content
<% end %>

答案 1 :(得分:4)

假设您的@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 %>

答案 2 :(得分:1)

@member_ids = @page.members.map{|m| m.id()}

然后检查以下条件

@memeber_ids.include? current_user.id()

答案 3 :(得分:0)

include?之前已经说过了。

我只是回答告诉你一个名为 CanCan 的宝石,它可让您轻松访问授权“帮助者”。

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

  1. 大多数时候不要重新发明这种做法。
  2. 您正在视图上放置业务逻辑(不良做法)。
  3. CanCan很可能已经开发出来考虑安全性和所有最佳实践。
  4. 节省了一些开发时间。
  5. 对不起,如果我重复一遍。