2013-11-14 23 views
0

我只是設置它,以便當用戶註冊我的博客時,它會爲用戶索引中的一個gravatar。這工作正常,但我正在考慮這樣做,以便當該用戶發佈帖子時,它將顯示來自用戶的他們的gravatar。我只是通過遷移發佈了一個user_id列。通過用戶爲我的帖子設置gravitars

這裏是我的架構的副本

ActiveRecord::Schema.define(version: 20131114141804) do 

    create_table "comments", force: true do |t| 
    t.text  "content" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    t.string "post_id" 
    end 

    create_table "posts", force: true do |t| 
    t.string "title" 
    t.text  "content" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    t.string "user_id" 
    end 

    create_table "users", force: true do |t| 
    t.string "email" 
    t.string "password_digest" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    t.string "auth_token" 
    t.string "password_reset_token" 
    t.datetime "password_reset_sent_at" 
    t.string "avatar_url" 
    end 
end 

型號:

用戶:

class User < ActiveRecord::Base 
    has_secure_password 

    validates_uniqueness_of :email 
    has_many :posts 

    validates_presence_of :password, :on => :create 
    before_create { generate_token(:auth_token) } 

    def send_password_reset 
    generate_token(:password_reset_token) 
    self.password_reset_sent_at = Time.zone.now 
    save! 
    UserMailer.password_reset(self).deliver 
    end 

    def generate_token(column) 
    begin 
     self[column] = SecureRandom.urlsafe_base64 
    end while User.exists?(column => self[column]) 
    end 
end 

帖子:

class Post < ActiveRecord::Base 
    belongs_to :user 
    has_many :comments 
end 

class Comment < ActiveRecord::Base 
    has_many :posts 
end 

application_helper.rb

module ApplicationHelper 
    def avatar_url(user) 
    gravatar_id = Digest::MD5::hexdigest(user.email).downcase 
    "http://gravatar.com/avatar/#{gravatar_id}.png?s=200" 
    end 
end 

正試圖做一些新的事情,有誰能幫助我,或指出我在正確的方向嗎?

+1

什麼是你的問題? –

回答

1

我建議大家仔細看一下使用paperclip作爲附件的過程,而不是試圖重新發明輪子。回形針的文檔實際上使用一個用戶頭像作爲例子,所以它對你的用例來說是完美的。

相關問題