【问题标题】:Devise Invitable - Show how many invite left设计邀请 - 显示剩余的邀请数量
【发布时间】:2013-04-27 13:59:45
【问题描述】:

我可以显示用户获得的邀请次数

<%= @user.invitation_limit %>

不过,我想显示还剩多少邀请。有什么帮助吗?

【问题讨论】:

  • 但邀请限制确实显示了剩余的邀请数量。还是我错过了什么?
  • 不是。它显示允许用户发送多少邀请。

标签: ruby-on-rails devise devise-invitable


【解决方案1】:

试试这个。首先,在 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 %>

希望这会有所帮助。

【讨论】:

  • 我将“助手”作为一种模型方法写出来,而不是对助手的适当约定,这不值得。假设作为助手,它应该是 `definvitations_remaining(user) user.invitation_limit - user.invitations.count end。
【解决方案2】:

我有同样的问题,然后想通了...您需要询问当前用户。如果您只要求@user,您将获得您在设计初始化程序中设置的默认配置限制。

所以只需使用&lt;%= current_user.invitation_limit %&gt; 代替&lt;%= @user.invitation_limit %&gt;

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多