我正在安装使用Forem创业板的论坛。有一个选项允许虚拟形象个性化,因为它可以用Facebook登录。您只需在用户模型中指定您的方法即可。Ruby - 如何访问模块的方法?
# Forem initializer
Forem.avatar_user_method = 'forem_avatar'
# User model
def forem_avatar
unless self.user_pic.empty?
self.user_pic
end
end
但我想要一个正常的,非facebook账户的Gravatar备用。 I've found the method on Forem和理论,我需要调用avatar_url
方法:
# User model
def forem_avatar
unless self.user_pic.empty?
self.user_pic
else
Forem::PostsHelper.avatar_url self.email
end
end
然而,培训就业部是不是一个实例,而是一个模块,我不能打电话,也没有创建新的实例。简单的方法是复制该方法的行,但这不是重点。有没有办法做到这一点?
感谢
更新
这两个答案都是正确的,但是当我调用该方法无论哪种方式,有这个undefined local variable or method 'request'
错误,这是原来的avatar_url
的最后一行。
有没有办法像PHP一样全球化这个对象?我是否必须手动将该参数传递给它?
感谢您的回答!这是真的,我可以做到这两点,但是没有找到'请求'的问题。另外,重新打开此模块的最佳位置在哪里?我试着把它放在初始化器上,但它触发了一个错误,我认为把它放在控制器上打开它是一个坏主意。 – metrobalderas
好吧,我猜'在你的控制器中包含Forem :: PostsHelper',而不是模型,并且在控制器中做与头像相关的东西,因为它肯定有'request'方法 – 2012-10-30 20:28:44