2016-05-14 135 views
0

我剛剛在我的Rails應用程序上安裝了回形針,並獲得它上傳圖像,但它仍然只顯示圖像名稱和一個破碎的圖像圖標,而不是顯示實際的URL。Rails回形針顯示圖像標題,而不是圖像

user.rb模型顯示:

has_attached_file :avatar, 
    :path => ":rails_root/public/system/:attachment/:id/:style/:filename", 
    :url => "/system/:attachment/:id/:style/:filename", 
    :styles => { :medium => "300x300>", :thumb => "100x100>" }, 
    :default_url => "/avatars/default_:style_avatar.png" 

    validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/ 

users_controller.rb顯示:

def create 
    @user = User.create(user_params) 
    ... 
end 

... 

    private 

def user_params 
    params.require(:user).permit(:avatar) 
end 

我的表格/顯示器看起來像這樣(的的if/else是#ED出用於故障診斷):

<%# if current_user.avatar != nil %> 
    <%= image_tag @user.avatar.url(:thumb) %> 
<%# else %> 
    <p>Looks a little impersonal...<br>Wanna upload a profile picture:</p> 
    <%= form_for @user, url: user_path, html: { multipart: true } do |form| %> 
     <%= form.file_field :avatar %> 
     <%= form.submit "Upload Picture", class: "btn btn-primary" %> 
    <% end %> 
<%# end %> 

我檢查了我的schema.rb文件並增加:avatar用戶表遷移成功:

create_table "users", force: :cascade do |t| 
    t.string "first_name" 
    t.string "last_name" 
    t.string "email" 
    t.string "password_digest" 
    t.datetime "created_at",   null: false 
    t.datetime "updated_at",   null: false 
    t.integer "role" 
    t.string "slug" 
    t.string "avatar_file_name" 
    t.string "avatar_content_type" 
    t.integer "avatar_file_size" 
    t.datetime "avatar_updated_at" 
end 

add_index "users", ["slug"], name: "index_users_on_slug", unique: true 

不過,我沒有看到任何地方上傳的圖片被保存。我在initializers文件夾中也看不到任何回形針,所以也許它與安裝該寶石有關?任何幫助,將不勝感激。

回答

0

如果您的圖片正確上傳,他們必須在您的公共目錄中進行復制,請檢查它。

你可以嘗試的另一件事是,創建一個新的模型可以說photos。他們的聯繫就像user, has_many :photos,並附上你的頭像照片模型。

+0

這是有趣的部分。公共目錄中沒有任何保存的照片(除了我的錯誤消息)。 – Liz