我正在使用https://github.com/scambra/devise_invitable
我正在尝试显示已邀请接受邀请的用户。
现在,这就是我所拥有的:
@invites = User.where(invited_by_id: @user.id)
但是这也列出了仍未接受邀请的空白用户,如何仅显示接受特定用户邀请的用户?
答案 0 :(得分:3)
我不喜欢看到实际的where
代码,所以我通常会这样做:
@invites = User.where.not(invitation_accepted_at: nil).where(invited_by_id: @user.id)
请注意,这使用了rails 4 syntax where.not
答案 1 :(得分:1)
我希望字段invitation_accepted_at
将为nil
,直到邀请被接受为止。所以这将是查询(与Rails 3兼容):
@invites = User.where("invited_by_id = ? AND invitation_accepted_at IS NOT ?", @user.id, nil)
答案 2 :(得分:0)
上面的代码将以一种奇怪的方式运行。 Devise_invitable文档中有一些帮助 (invitation_not_accepted& invitation_accepted) 。有点习惯:
直接在视图中:
<%= Member.invitation_not_accepted.where(invited_by_id: current_member.id).count %>
<%= Member.invitation_accepted.where(invited_by_id: current_member.id).count %>