0

我正在尝试使用我的电子邮件地址从 Gravatar 获取我的管理员头像。我从 Ryan Bate 的 Railscast http://railscasts.com/episodes/244-gravatar复制了一些代码

应用程序助手:

module ApplicationHelper
  def avatar_url(current_admin)
    if current_admin.avatar_url.present?
      current_admin.avatar_url
    else
      default_url = "#{root_url}images/guest.png"
      gravatar_id = Digest::MD5.hexdigest(current_admin.email.downcase)
      "http://gravatar.com/avatar/#{gravatar_id}.png?s=48&d=#{CGI.escape(default_url)}"
    end
  end
end

我的应用程序控制器有helper :all

我的观点有<%= image_tag, avatar_url(current_admin), :class => "img-circle" %>我得到的错误是NoMethodError更具体地说,undefined method 'avatar_url' for #<Admin:0x007fc4ae804ee8>

current_admin设计设置。

4

2 回答 2

1

该错误告诉avatar_url您模型中不存在该属性Admin

如果使用 ActiveRecord,您应该添加它来创建 Rails 迁移。

于 2013-07-24T08:58:20.883 回答
1

我查看了这个 RailsCast,实际上它很差。有一次,Ryan 说只是添加avatar_urlUser而没有给出任何提示该字段的数据应该来自哪里。

所以不幸的是,如果使用 ActiveRecord,您需要通过创建 rails 迁移来自己添加此字段。

rails g migration AddAvatarUrlToUser avatar_url

但这仅在您希望允许用户拥有自己的非 Gravatar 图像时才需要。如果你想坚持使用 gravatar,你可以跳过“使用来自其他站点的图像和 OmniAuth”部分的所有内容

于 2013-07-24T09:10:33.547 回答