【发布时间】:2011-10-28 07:57:59
【问题描述】:
我开始使用回形针插件,但我似乎无法在开发中显示图像。我在 config/environments/development.rb 文件中添加了以下内容:
Paperclip.options[:command_path] = "/usr/local/bin/"
我通过自制软件包管理器安装了 imagemagick 和 ghostscript。然后我将回形针 gem 添加到我的 gemfile 并运行 bundle install。然后我跑了
rails g paperclip carrier_data asset
rake db:migrate
然后我转到我的运营商数据模型并添加了
has_attached_file :asset
之后我更改了部分表单以添加生成的代码以便上传图像,我使用的是简单表单 gem,这是我输入的以下代码。
<%= simple_form_for [:carrier_datum, @carrier_datum], :url => carrier_datum_path, :html => { :multipart => true} do |f| %>
<div>
<%= f.input :asset, :as => :file, :label => "Upload File" %>
</div>
最后我去了展示页面并添加了以下代码以便我可以查看图像:
<%= image_tag @carrier_datum.asset.url %>
当我尝试创建新的承运人基准记录时,我收到以下消息:
No route matches {:action=>"show", :controller=>"carrier_data"}
日志如下所示:
ActionView::Template::Error (No route matches {:action=>"show", :controller=>"carrier_data"}):
1: <%= simple_form_for [:carrier_datum, @carrier_datum], :url => carrier_datum_path, :html => { :multipart => true} do |f| %>
2: <% if @carrier_datum.errors.any? %>
3: <div id="error_explanation">
4: <h2><%= pluralize(@carrier_datum.errors.count, "error") %> prohibited this carrier_datum from being saved:</h2>
app/views/carrier_data/_form.html.erb:1:in `_app_views_carrier_data__form_html_erb__2372678434167691626_2513245300'
app/views/carrier_data/new.html.erb:3:in `_app_views_carrier_data_new_html_erb___55769200685419080_2513267980'
app/controllers/carrier_data_controller.rb:30:in `new'
我正在运行 rails 3.1,如果有帮助的话,我的数据库是 postgresql。
这是 rake 路由的输出
carrier_data GET /carrier_data(.:format) {:action=>"index", :controller=>"carrier_data"}
POST /carrier_data(.:format) {:action=>"create", :controller=>"carrier_data"}
new_carrier_datum GET /carrier_data/new(.:format) {:action=>"new", :controller=>"carrier_data"}
edit_carrier_datum GET /carrier_data/:id/edit(.:format) {:action=>"edit", :controller=>"carrier_data"}
carrier_datum GET /carrier_data/:id(.:format) {:action=>"show", :controller=>"carrier_data"}
PUT /carrier_data/:id(.:format) {:action=>"update", :controller=>"carrier_data"}
DELETE /carrier_data/:id(.:format) {:action=>"destroy", :controller=>"carrier_data"}
pages GET /pages(.:format)
如果我删除简单的表单调用并使用像这样的常规表单部分表示法:
<%= form_for(@carrier_datum, :html => { :multipart => true}) do |f| %>
<div>
<%= f.label :asset, "Upload File:"%>
<%= f.file_field :asset %>
</div>
我仍然遇到图像损坏问题,并且我的日志显示图像丢失。
【问题讨论】:
-
rake 路由输出是否符合您的预期?
-
是的,看看上面的 rake routes 命令给了我什么。
标签: ruby-on-rails file-upload ruby-on-rails-3.1 paperclip