设计邀请显示已接受的邀请

时间:2014-03-04 23:33:06

标签: ruby-on-rails ruby ruby-on-rails-4

我正在使用https://github.com/scambra/devise_invitable

我正在尝试显示已邀请接受邀请的用户。

现在,这就是我所拥有的:

@invites = User.where(invited_by_id: @user.id)

但是这也列出了仍未接受邀请的空白用户,如何仅显示接受特定用户邀请的用户?

3 个答案:

答案 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 %>