скрепка и рельсы 3 - NoMethodError - PullRequest
0 голосов
/ 06 ноября 2010

Итак, я только что установил скрепку и пытаюсь заставить ее работать в моем новом приложении Rails.

Но я получаю эту ошибку, когда захожу в localhost / upload / new:

NoMethodError in Upload#new
undefined method `uploads_path' for #<#<Class:0x00000102d1b8e0>:0x00000102cf24e0>
Extracted source (around line #3):

1: <h1>Upload Images</h1>
2: 
3: <%= form_for @upload, :html => { :multipart => true } do |f| %>
4:  <%= render 'fields', :f => f %>
5:  <div>
6:      <%= f.submit "Upload" %>

Я решил еще одну ошибку с помощью Paperclip, включив следующую строку в мой файл config / application.rb:

Paperclip::Railtie.insert 

Структура моего приложения состоит в том, что я создал модель с именем'uploads', потому что приложение будет управлять различными типами файлов - загруженными пользователями.Скрепка управляет изображениями.

Контроллер загрузки выглядит следующим образом:

class UploadController < ApplicationController
  def index
  end

  def show
  end

  def new
    @upload = Upload.new
    @title = "Upload"
  end

  def edit
  end

  def delete
  end

end

Итак, моя модель загрузки выглядит следующим образом:

class Upload < ActiveRecord::Base
    attr_accessible :name, :description, :type

    has_attached_file :image
end

Вот как мой новыйФайл .html.erb выглядит так:

<h1>Upload Images</h1>

<%= form_for @upload, :html => { :multipart => true } do |f| %>
    <%= render 'fields', :f => f %>
    <div>
        <%= f.submit "Upload" %>
    </div>
<% end %>

Часть выглядит следующим образом:

<%= render 'shared/error_messages', :object => f.object %>
<div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
</div>
<div class="field">
    <%= f.label :description %><br />
    <%= f.text_field :description %>
</div>
<div class="field">
    <%= f.label :type %><br />
    <%= f.text_field :type %>
</div>
<div class="field">
    <%= f.file_field :image %>
</div>

PS Я просто изучаю Rails, поэтому, если есть ошибки новичка / новичка, пожалуйста, неt распни меня: |

Спасибо.

Редактировать: Вот вывод для маршрута граблей для приложения, как спросил Забба:

comment_index GET /comment/index(.:format)   {:controller=>"comment", :action=>"index"}
   comment_show GET /comment/show(.:format)    {:controller=>"comment", :action=>"show"}
    comment_new GET /comment/new(.:format)     {:controller=>"comment", :action=>"new"}
   comment_edit GET /comment/edit(.:format)    {:controller=>"comment", :action=>"edit"}
 comment_delete GET /comment/delete(.:format)  {:controller=>"comment", :action=>"delete"}
   upload_index GET /upload/index(.:format)    {:controller=>"upload", :action=>"index"}
    upload_show GET /upload/show(.:format)     {:controller=>"upload", :action=>"show"}
     upload_new GET /upload/new(.:format)      {:controller=>"upload", :action=>"new"}
    upload_edit GET /upload/edit(.:format)     {:controller=>"upload", :action=>"edit"}
  upload_delete GET /upload/delete(.:format)   {:controller=>"upload", :action=>"delete"}
  project_index GET /project/index(.:format)   {:controller=>"project", :action=>"index"}
   project_show GET /project/show(.:format)    {:controller=>"project", :action=>"show"}
    project_new GET /project/new(.:format)     {:controller=>"project", :action=>"new"}
   project_edit GET /project/edit(.:format)    {:controller=>"project", :action=>"edit"}
 project_delete GET /project/delete(.:format)  {:controller=>"project", :action=>"delete"}
   client_index GET /client/index(.:format)    {:controller=>"client", :action=>"index"}
    client_show GET /client/show(.:format)     {:controller=>"client", :action=>"show"}
     client_new GET /client/new(.:format)      {:controller=>"client", :action=>"new"}
    client_edit GET /client/edit(.:format)     {:controller=>"client", :action=>"edit"}
  client_delete GET /client/delete(.:format)   {:controller=>"client", :action=>"delete"}
 designer_index GET /designer/index(.:format)  {:controller=>"designer", :action=>"index"}
  designer_show GET /designer/show(.:format)   {:controller=>"designer", :action=>"show"}
   designer_new GET /designer/new(.:format)    {:controller=>"designer", :action=>"new"}
  designer_edit GET /designer/edit(.:format)   {:controller=>"designer", :action=>"edit"}
designer_delete GET /designer/delete(.:format) {:controller=>"designer", :action=>"delete"}
           root     /(.:format)                {:controller=>"project", :action=>"index"}

1 Ответ

1 голос
/ 06 ноября 2010

В вашем файле карт добавьте:

Для Rails 2.x:

map.resources :uploads

Для Rails 3.x:

resources :uploads

Это добавит все маршруты для 7 действий RESTful, и users_path будет работать.

...