我是新来的铁轨。我试图上传附在名字上的图片。该表单的视图名称为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