Ruby on rails RubyonRails风格:Model#attr_name?方法
我的个人模型有一个由ActiveRecord支持的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
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#自我是不必要的
结束
结束
这不适合我的特定用例,但您的声誉
建议很好!