所以我只是添加回形針並將其移植到名爲users_pictures的表中。 我的模型看起來是這樣的:Rails:回形針不保存在數據庫中
class UsersPicture < ActiveRecord::Base
attr_accessible :user_id, :users_picture_file, :users_picture_id,
:photo_file_name, :photo_content_type, :photo_file_size
belongs_to :users
has_attached_file :photo,
:url => "/images/:attachment/:basename.:extension",
:path => ":rails_root/public/images/:attachment/:basename.:extension"
end
所以,當我訪問「new.html.erb」頁面上,我可以添加圖片的形式......給它USER_ID並提交。 Rails不告訴我任何錯誤及日誌甚至說:
Processing by UsersPicturesController#create as HTML
Parameters: {"commit"=>"Create Users picture",`
"authenticity_token"=>"0tbAZj5MKyN/uaj0ybaNsa0dZrxeS05OJNNA3ZNO8Uc=",
"users_picture"=>{"user_id"=>"12",
"photo"=>#<ActionDispatch::Http::UploadedFile:0xe028dbd4
@content_type="image/jpeg", @tempfile=#<File:/tmp/RackMultipart20121019-14239-1edlwpp-0>,
@headers="Content-Disposition: form-data; name=\"users_picture[photo]\"; filename=\"rh.jpeg
\"\r\nContent-Type: image/jpeg\r\n", @original_filename="rh.jpeg">}, "utf8"=>"✓"}
[paperclip] Saving attachments.
Redirected to xxxx/users_pictures/8
Completed 302 Found in 18ms (ActiveRecord: 1.2ms)
但FileInfo的沒有被保存到數據庫中...所以我不能顯示它。 螢火告訴我一些關於POST方法的參數:
authenticity_token 0tbAZj5MKyN/uaj0ybaNsa0dZrxeS05OJNNA3ZNO8Uc=
users_picture[user_id] 12
users_picture[photo] ÿØÿà�JFIF������ÿÛ�� !"&# /!$'),,-180*5*+,) 0%"5)-,*4,,,*,),),,,,,,,,,,,,,))),,,*,),,,,),),,,)).,ÿÀ��Ì�Ì"�ÿÄ��������������ÿÄ�E� ����!1AQ"aq2#BRbr¡3²¢±ÁÑ4SÓ%Cs£ÒáÿÄ������������ÿÄ�%��������!1"A2BQq¡ÿÚ���?�Þ4¥()JJRR ¥pLªXl °ôR|¨u]Þýú
等。 因此,它不是將路徑保存到數據庫中,而是保存圖片的源代碼? 正如你所看到的,我已經設置了:url和:path(即使沒有:attachment,因爲我不知道它是什麼)
一般來說,我只是想將圖片上傳到某個路徑;並將名稱和大小等文件信息存儲在我的數據庫中。
從視圖文件夾我的形式如下:
<%= form_for(@users_picture, :html => { :multipart => true }) do |f| %>
...
<%= f.file_field :photo %>
我不會發布秀和index.html.erb,因爲顯示是另一回事 - 我首先必須取得保存所有數據在數據庫中+將圖片上傳到某些文件夾。 有關如何正確執行此操作的任何建議?
它看起來並不像什麼在這個階段是怎麼了。你爲什麼說文件信息沒有被保存在數據庫中? User.find(12).user_photo'(或'.user_photos',如果它是'has_many'關係)的結果是什麼?問題很可能是檢索上傳的文件,而不是保存它(如您所見,回形針說它將圖像保存在服務器日誌中)。 – gregates
是的,它就像文件沒有被處理。 User.find(12).users_pictures給出例如#
user1697061
嗯。處理表單提交的控制器操作是什麼樣的? – gregates