如何在rails中的哈希上调用自定义帮助器方法? 以下是我的挑战的简化示例。
当我致电 last_key(my_hash)
时,以下方法有效 def last_key(hash)
hash.keys.last
end
当我调用 my_hash.first_key
时,此方法失败 def self.first_key
self.keys.first
end
用于散列的first_key的未定义方法是我使用此方法获得的响应以及其他几个代码排列。
为什么这不起作用以及 my_hash.first_key 正常运行所需的方法语法是什么?
答案 0 :(得分:4)
这是一个类方法(self.something
),但您需要一个对象方法:
class Hash
def first_key
self.keys.first
end
end
a = {'s' => 1, 'b'=> 2}
a.first_key # => "s"
答案 1 :(得分:1)
从方法定义中删除self.
,否则它将成为类方法。
def first_key
self.keys.first
end
答案 2 :(得分:0)
您需要扩展哈希类以实现新的实例方法 some_method 。
这可以按如下方式完成:
class Hash
def some_method
# your code here
end
end
你可以使用。 a_hash.some_method