如何在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>
答
希望这有助于:
控制器:
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 希望这有助于
当您在轨道做'find_by'它会发现*第一个*记录在案符合指定的条件。使用'where' – radubogdan