我尝试按照这些说明为特定类型的每个对象上传两张图片:http://archive.railsforum.com/viewtopic.php?id=4642
这就是我的模特的样子:
class Mepager < ActiveRecord::Base
has_many :images
end
class Image < ActiveRecord::Base
belongs_to :mepager
def image_file=(input_data)
self.filename = input_data.original_filename
self.content_type = input_data.content_type.chomp
self.binary_data = input_data.read
end
end
create_table "images", force: true do |t|
t.string "content_type"
t.string "filename"
t.binary "binary_data"
t.string "connector"
t.integer "mepager_id"
t.datetime "created_at"
t.datetime "updated_at"
end
def new
@mepager = @pimp.build_mepager
@pre_image = @mepager.images.build(:connector => "pre")
@post_image = @mepager.images.build(:connector => "post")
end
def mepager_params
params.require(:mepager).permit(:id,
:images_attributes => [:id, :content_type, :filename, :binary_data, :mepager_id, :connector])
end
<%= simple_form_for :mepager, url: mepager_path, html: {multipart: true} do |f| %>
<%= f.simple_fields_for :images, @pre_image do |image| %>
<b>Pre-Image</b>
<%= image.input :image_file, :as => :file, label: false, input_html:{:size => 15} %>
<%= image.input :connector %>
<% end %>
<%= f.simple_fields_for :images, @post_image do |image| %>
<b>Post-Image</b>
<%= image.input :image_file, :as => :file, label: false, input_html:{:size => 15} %>
<%= image.input :connector %>
<% end %>
<% end %>
但如果我选择该表单中的文件并提交,则不会保存!
任何?
祝你好运!
答案 0 :(得分:1)
为什么不要只是将图像链接保存到数据库,然后将图像上传到服务器上的给定目录,它更好,更安全。为此,你必须使用回形针查看这个例子 首先在gem文件中添加paperclip gem,如下所示
gem "paperclip", "~> 2.3"
在项目目录中运行bundle install之后
然后生成一个迁移,将字段添加到您的表中,就像这样
rails g migration add_attach_paperclip
然后将这些列添加到您的表
class AddattachPaperclip < ActiveRecord::Migration
def self.up
add_column :images, :attach_file_name, :string
add_column :images, :attach_content_type, :string
add_column :images, :attach_file_size, :integer
add_column :images, :attach_updated_at, :datetime
end
def self.down
remove_column :images, :attach_file_name
remove_column :images, :attach_content_type
remove_column :images, :attach_file_size
remove_column :images, :attach_updated_at
end
end
你去耙移民
通过添加此
更改图像模型后has_attached_file :pic
将文件字段的名称更改为pic
当您想要显示图像时,只需使用
<%= @image.pic.url %>