我在类中有以下Ruby代码块:
def self.blacklisted_keywords
%w(acquista acquistiamo acquisto acquistano compro compriamo comprano)
end
private
def item_valid?
keywords = blacklisted_keywords
end为什么我不能调用blacklisted_keywords而没有得到:“未定义的方法`blacklisted_keywords'"?我做错了什么?
发布于 2014-01-20 10:39:48
因为blacklisted_keywords不是一个实例方法,而是一个类方法。keywords = blacklisted_keywords的意思是将它隐式地看作keywords = self.blacklisted_keywords。这会导致错误,因为它不是实例方法。将keywords = blacklisted_keywords替换为keywords = self.class.blacklisted_keywords
发布于 2014-01-20 10:45:46
按照所提供的答案,如果不需要对关键字进行变异,也许将关键字保持在不变中是有意义的。
class Blah
BLACKLISTED_KEYWORDS = %w(acquista acquistiamo acquisto acquistano compro compriamo comprano)
private
def item_valid?
keywords = BLACKLISTED_KEYWORDS
end
endhttps://stackoverflow.com/questions/21231718
复制相似问题