Ошибка маршрутизации: не найден маршрут "/ images / new" с использованием кода скаффолда - PullRequest
1 голос
/ 16 марта 2011

У меня нет опыта работы с Rails, поэтому я могу пропустить что-то простое, но я следую документации Paperclip wiki для добавления вложений изображений и после изменения соответствующих файлов, как указано там, /images/new работает, как и ожидалось, до тех пор, пока форма не будет отправлена ​​(часть формы была изменена, чтобы включить поле загрузки файла для вложения вместо сгенерированных полей базы данных). Ответ таков:

Ошибка маршрутизации

Не найдено ни одного маршрута "/ images / new"

И сервер rails выводит это:

Запущен POST "/ images / new" для 127.0.0.1 в вторник 15 марта 16:19:45 -0500 2011

ActionController :: RoutingError (Нет подходящих маршрутов "/ images / new"):

Предоставлено /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.5/lib/action_dispatch/middleware/templates/rescues/routing_error.erb в рамках rescues / layout (1.0ms)

Я создал модель изображения, позволяющую обрабатывать каждое вложение изображения независимо от модели проекта, с которой они будут связаны (еще ничего не делали).

Вот мои изображения / _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 %>

А вот и мои маршруты.рб

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 ]

2 голосов
/ 20 марта 2011

Я столкнулся с той же проблемой в течение некоторого времени.Я внес следующие изменения в "form_for" -

<%= form_for :image, :as => @image, :url => { :action => "create" }, :html => { :multipart => true } do |f| %>

Теперь POST переходит в / images и сообщение об ошибке отсутствующего маршрута больше не появляется.

0 голосов
/ 16 марта 2011

Кажется, проблема связана с Paperclip и / или ImageMagick, возможно, с моей конфигурацией Windows / Cygwin.Изменение некоторых переменных среды, похоже, позволило мне обойти эту проблему и перейти к сообщениям ....jpg is not recognized by the 'identify' command..

Любая помощь по этому вопросу будет принята с благодарностью, но похоже, что это тема, которая уже охватывается существующими вопросами, которыеЯ сейчас читаю (пока не повезло).

0 голосов
/ 16 марта 2011

Измените параметры form_for следующим образом:

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

<% end %>

Я только что проверил, оно должно работать.

...