我是新來的鐵軌。我試圖上傳附在名字上的圖片。該表單的視圖名稱爲index
,並且存在名爲show
的視圖的鏈接,該視圖將顯示添加名稱時上傳的名稱和圖像。該控制器是pages
。使用回形針在Rails上傳圖片丟失
我從一個基本的表格開始,它的工作原理是將一個name
字段添加到Users
模型中。問題是,當我使用回形針上傳圖像時,將名字壓入數據庫,圖像沒有顯示在show
中,而是一個破碎的圖像鏈接。讓我解釋我是如何做到的。
我安裝了回形針。
向Users
模型添加新列rails g paperclip users image
然後rake db:migrate
它和新列現在在Users
中。
接下來,我通過<%= f.file_field :image %>
在表單中創建一個file_field,並將has_attached_file :image
添加到Users
模型。 裏面view
,我使數據庫的一個循環打印出了名,並與<%= image_tag t.image.url %>
的名稱顯示,但圖像不是,它缺少的圖像。下面的代碼:
索引視圖:
<a href="show">To SHOW</a><br>
<%= form_for @add, :url => { :action => "them"}, :html => { :multipart => true} do |f| %>
Name: <%= f.text_field :name %><br>
Photo: <%= f.file_field :image %><br>
<%= f.submit "Add" %>
<% end %>
顯示視圖:
<% @everything.each do |t| %>
<%= t.name %>
<%= image_tag t.image.url %>
<br><br><br>
<% end %>
控制器:
class PagesController < ApplicationController
def index
@add = Users.new
end
def them
Users.create :name => params[:users][:name]
redirect_to :action => "index"
end
def show
@everything = Users.all
end
end
users.rb的模型:
class Users < ActiveRecord::Base
attr_accessible :name
has_attached_file :image
end
分
的routes.rb:
get "pages/index"
match "pages/them" => "pages#them", :via => :post
get "pages/show"
我使用SQLite的專家個人檢查數據庫,這個名字是有,但所有的image_列(image_file_name
,image_content_type
,image_file_size
,image_update_at
)都只是空。
我錯過了什麼讓它工作?隨時索取更多信息。謝謝。
也許如果你添加的照片在create方法,在'them'行動,它將被添加到記錄中...您給「名稱」賦予一個值 – 2014-10-30 08:20:38
我檢查了回形針上的一些教程,發現沒有要添加到「他們」動作的代碼。你會建議我把他們的圖像添加到記錄中嗎? – 2014-10-30 08:23:40