路由错误:没有路由匹配“/ images / new”使用脚手架代码

时间:2011-03-15 22:12:21

标签: ruby-on-rails ruby-on-rails-3 paperclip

我对Rails缺乏经验,所以我可能会忽略一些基本的东西,但我正在关注添加图像附件的Paperclip wiki's documentation,并在修改相关文件之后,/images/new作为预期,直到提交表单(表单部分已被修改为包括附件的文件上载字段代替生成的数据库字段)。答案如下:

  

路由错误

     

没有路线匹配“/ images / new”

rails服务器输出:

  

于2011年3月15日星期二16:19:45 -0500开始发布“/ images / new”for 127.0.0.1

     

ActionController :: RoutingError(没有路由匹配“/ images / new”):

     

在救援/布局(1.0ms)内呈现/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.5/lib/action_dispatch/middleware/templates/rescues/routing_error.erb

我创建了一个图像模型,允许独立于与之关联的项目模型处理每个图像附件(尚未完成任何这些)。

这是我的图片/ _form.html.erb:

<%= form_for :image, :as => @image, :html => { :multipart => true } do |f| %>
  <% if @image.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@image.errors.count, "error") %> prohibited this image from being saved:</h2>
      <ul>
      <% @image.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
<% end %>
<div class="field">
    <%= f.label :img %><br />
    <%= f.file_field :img %>
  </div>
  <div class="field">
    <%= f.label :project_id %><br />
    <%= f.text_field :project_id %>
  </div>
  <div class="field">
    <%= f.label :alt %><br />
    <%= f.text_area :alt %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

这是我的routes.rb

App2::Application.routes.draw do
  resources :images
  resources :projects
  get "pages/about"
  get "pages/contact"
  root :to => "projects#index"
end

app/models/image.rb

class Image < ActiveRecord::Base
    has_attached_file   :img
#                       :styles => {    :thumb => "150x150>", 
#                                   :large     => "800x600>", 
#                                   :hd => "1920x1080>" 
#                               }
end

无法找到与此错误相关的任何与我的配置相关的明确信息,所以我很欣赏一些经验丰富的眼睛与我一起看这个。如果需要,我会发布更多信息。

3 个答案:

答案 0 :(得分:2)

我现在面对同样的问题一段时间了。我在“form_for” -

中进行了以下更改
<%= form_for :image, :as => @image, :url => { :action => "create" }, :html => { :multipart => true } do |f| %>

现在POST转到/ images并且不再出现丢失的路由错误消息。

答案 1 :(得分:0)

更改form_for参数,如下所示:

<%= form_for @image, :html => { :multipart => true } do |f| %>

<% end %>

我刚试过它,它应该可以工作。

答案 2 :(得分:0)

似乎问题与Paperclip和/或ImageMagick有关,可能涉及我的Windows / Cygwin配置。更改一些环境变量似乎允许我绕过此问题并转到....jpg is not recognized by the 'identify' command.消息。

任何有关这方面的帮助都会受到赞赏,但看起来这是一个已经被现有问题所涵盖的主题,我现在正在阅读(到目前为止没有运气)。