gpt4 book ai didi

ruby-on-rails - 在 Rails 模型中调用 gravatar_for

转载 作者:太空宇宙 更新时间:2023-11-03 17:37:43 24 4
gpt4 key购买 nike

我正在尝试从我的一个模型中调用 gravatar_for。 (是的,我意识到这不是严格意义上的 MVC,但我有这样做的正当理由,我不会讨论)。我试图包括 Gravatar 的助手,但我没有成功找到它们是什么。

到目前为止,像这样将它包含在我的类(class)中是行不通的:

class AnnotationPostedActivity < NewsfeedActivity
include GravatarHelper::PublicMethods

最佳答案

假设您使用的是 gravatar-plugin要生成图像标签,有几个问题需要克服。请注意,gravatar_for 方法将用户对象作为其第一个参数。

GravatarHelper::PublicMethods 混合到您的 AnnotationPostedActivity 类中,使所有实例都可以访问方法 gravatar_for(user, options={}) .所以你会说:

alice = User.new()

alice.respond_to?(:gravatar_for)
=> true

alice.gravatar_for
ArgumentError: wrong number of arguments (0 for 1)
# (you need to supply an argument - the method got zero but was expecting one)

alice.gravatar_for(alice)
=> "<img class=\"gravatar\" alt=\"\" width=\"50\" height=\"50\" src=\"http://www.gravatar.com/avatar/70375a32ad79987b9bc00cb20f7d1c95?rating=PG&amp;size=50\" />
# (not what we want at all)

您知道,您必须提供 user 对象作为 gravatar_for 方法的第一个参数。所以你要做的是

1。使用另一个 gem

它提供了一个查看 self.email 而不是将其作为方法参数的模块。

2。自己实现方法

It's easy .还有 already ruby code跟随。您可能需要在您的AnnotationPostedActivity 模型

中包含一些 Rails 的助手
>> gravatar_url 'github@deanandadie.net`
NoMethodError: undefined method `h' for main:Object ....

>> require 'active_support/core_ext/string/output_safety'
=> true

>> include ERB::Util
=> Object

>> gravatar_url 'github@deanandadie.net`
=> "http://www.gravatar.com/avatar/fbaf55d6c2618cafe0a759cfe85967e0?rating=PG&size=50"

关于ruby-on-rails - 在 Rails 模型中调用 gravatar_for,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11445115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com