如何在Ruby on Rails中查找具有相同内容的数据库中的用户?

问题描述:

在我的数据库我有柱:邀请和一些用户在该列中相同的内容如何在Ruby on Rails中查找具有相同内容的数据库中的用户?

我想找到所有他们,同样的内容

在我的用户控制:

def foll 
    @user = current_user 
    @ref = User.find_by_invite(@user.id.to_s) 
    if [email protected] || [email protected]_s || [email protected]_1 || [email protected]_2 || [email protected]_3 
     @referals = false 
    else 
     @referals = User.find_by_invite(@user.id.to_s) 
    end 
    end 

在我的意见

<% if @referals != false %> 
    <% @referals.each do |user| %> 
     <h4> 
     <%= link_to user.name, user %> status : Good 
     </h4> 
    <% end %> 
    <% else %> 
    <h3>You dont have any referrals</h3> 
    <% end %> 

当我尝试我有这个错误

undefined method `each' for #<User:0x007f13e41b0068> 
+0

当您在轨道做'find_by'它会发现*第一个*记录在案符合指定的条件。使用'where' – radubogdan

希望这有助于:

控制器:

def foll 
    @user = current_user 
    @ref = User.find_by_invite(@user.id.to_s) 
    if [email protected] || [email protected]_s || [email protected]_1 || [email protected]_2 || [email protected]_3 
     @referals = [] 
    else 
     @referals = User.where(invite: @user.id.to_s) 
    end 
    end 

观点:

<% if @referals.any? %> 
    <% @referals.each do |user| %> 
     <h4> 
     <%= link_to user.name, user %> status : Good 
     </h4> 
    <% end %> 
<% else %> 
    <h3>You dont have any referrals</h3> 
<% end %> 

这将引发错误,因为

@referals = User.find_by_invite(@user.id.to_s) 

将返回单个记录

你可以尝试#WHERE查询所有推荐

@referals = User.where(invite: @user.id.to_s) 

你也可以参考这里的其他查询 http://guides.rubyonrails.org/active_record_querying.html 希望这有助于