Ruby on rails RubyonRails风格:Model#attr_name?方法

Ruby on rails RubyonRails风格:Model#attr_name?方法,ruby-on-rails,Ruby On Rails,我的个人模型有一个由ActiveRecord支持的vip属性,因此它自动获得vip和vip=方法。该属性最初是一个布尔值,但需要更改为整数,以允许几个类别的重要性/声望/等,并且由于已经有许多对布尔值的引用,我想我应该添加如下方法: class User < ActiveRecord::Base def vip? self.vip >= 10 end end class用户=10 结束 结束 因此,我可以通过对#vip?的调用来修复对#vip?的现有调用。用#vi

我的个人模型有一个由ActiveRecord支持的
vip
属性,因此它自动获得
vip
vip=
方法。该属性最初是一个布尔值,但需要更改为整数,以允许几个类别的重要性/声望/等,并且由于已经有许多对布尔值的引用,我想我应该添加如下方法:

class User < ActiveRecord::Base
  def vip?
    self.vip >= 10
  end
end
class用户=10
结束
结束

因此,我可以通过对
#vip?
的调用来修复对
#vip?
的现有调用。用
#vip
存储重要级别和
vip?
检查记录是否“足够重要”,这样做是不好的做法还是令人困惑?命名有点混乱,因为
状态
已被另一列占用。

我认为您重命名属性的方法是正确的<代码>vip?返回相关属性是否超过某个值。也许属性应该是类似于
积分
积分
,或者
声誉
?在这方面,我想到了类似StackOverflow的东西。用户拥有累积的
声誉
分数。一些徽章仅根据此累积分数分配。虽然这可能是用户收到的所有向上投票、问题、答案等的综合分数,但您的数据可能是一个简单的整数值,您可以根据该整数值确定状态。vBulletin和其他论坛软件也会根据帖子数量和其他属性进行设置。

A
谓词方法
应返回
true
false
,但您可以建立所需的条件。不管方法名称如何,我认为您所做的是正确的

class User < ActiveRecord::Base
  def vip?
    vip >= 10 # self is unnecesary
  end
end
class用户=10#自我是不必要的
结束
结束

这不适合我的特定用例,但您的
声誉
建议很好!