【发布时间】:2013-04-27 13:59:45
【问题描述】:
我可以显示用户获得的邀请次数
<%= @user.invitation_limit %>
不过,我想显示还剩多少邀请。有什么帮助吗?
【问题讨论】:
-
但邀请限制确实显示了剩余的邀请数量。还是我错过了什么?
-
不是。它显示允许用户发送多少邀请。
标签: ruby-on-rails devise devise-invitable
我可以显示用户获得的邀请次数
<%= @user.invitation_limit %>
不过,我想显示还剩多少邀请。有什么帮助吗?
【问题讨论】:
标签: ruby-on-rails devise devise-invitable
试试这个。首先,在 User 模型和 :invitations 之间建立一个 has_many 关联。
# User.rb
....
has_many :invitations, :class_name => self.to_s, :as => :invited_by
这将使您可以访问
@user.invitations
然后您只需执行数学运算即可获得您正在寻找的显示器。
<%= @user.invitation_limit - @user.invitations.count %>
为了更优雅,创建帮助程序并将逻辑从视图中移除可能是个好主意。
def invitations_remaining
invitation_limit - invitations.count
end
那么你可以简单地调用
<%= @user.invitations_remaining %>
希望这会有所帮助。
【讨论】:
我有同样的问题,然后想通了...您需要询问当前用户。如果您只要求@user,您将获得您在设计初始化程序中设置的默认配置限制。
所以只需使用<%= current_user.invitation_limit %> 代替<%= @user.invitation_limit %>。
希望对您有所帮助。
【讨论】: