2010-11-12 36 views
2

所以我跑了一個普通的生成腳手架,並使用股票表格來處理上傳。在Rails3中用回形針編輯動作的問題

所有上傳都很好地工作,圖像完美附加。我得到的問題是,當我去「編輯」,並嘗試改變形象,這是我得到的錯誤:

Routing Error 

No route matches "/uploads" 

這裏是我的控制器的樣子。這個名字是 'uploads_controller.rb'

class UploadsController < ApplicationController 
    # GET /uploads 
    # GET /uploads.xml 
    def index 
    @uploads = Upload.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.xml { render :xml => @uploads } 
    end 
    end 

    # GET /uploads/1 
    # GET /uploads/1.xml 
    def show 
    @upload = Upload.find(params[:id]) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.xml { render :xml => @upload } 
    end 
    end 

    # GET /uploads/new 
    # GET /uploads/new.xml 
    def new 
    @upload = Upload.new 

    respond_to do |format| 
     format.html # new.html.erb 
     format.xml { render :xml => @upload } 
    end 
    end 

    # GET /uploads/1/edit 
    def edit 
    @upload = Upload.find(params[:id]) 
    end 

    # POST /uploads 
    # POST /uploads.xml 
    def create 
    @upload = Upload.new(params[:upload]) 

    respond_to do |format| 
     if @upload.save 
     format.html { redirect_to(@upload, :notice => 'Upload was successfully created.') } 
     format.xml { render :xml => @upload, :status => :created, :location => @upload } 
     else 
     format.html { render :action => "new" } 
     format.xml { render :xml => @upload.errors, :status => :unprocessable_entity } 
     end 
    end 
    end 

    # PUT /uploads/1 
    # PUT /uploads/1.xml 
    def update 
    @upload = Upload.find(params[:id]) 

    respond_to do |format| 
     if @upload.update_attributes(params[:upload]) 
     format.html { redirect_to(@upload, :notice => 'Upload was successfully updated.') } 
     format.xml { head :ok } 
     else 
     format.html { render :action => "edit" } 
     format.xml { render :xml => @upload.errors, :status => :unprocessable_entity } 
     end 
    end 
    end 

    # DELETE /uploads/1 
    # DELETE /uploads/1.xml 
    def destroy 
    @upload = Upload.find(params[:id]) 
    @upload.destroy 

    respond_to do |format| 
     format.html { redirect_to(uploads_url) } 
     format.xml { head :ok } 
    end 
    end 
end 

的 'upload.rb' 模型文件看起來是這樣的:

class Upload < ActiveRecord::Base 
    has_attached_file :image 
end 

show.html.erb

<p id="notice"><%= notice %></p> 

<p> 
    <b>Name:</b> 
    <%= @upload.name %> 
</p> 

<p> 
    <b>Description:</b> 
    <%= @upload.description %> 
</p> 

<p> 
    <b>Your Image:</b> 
    <%= image_tag @upload.image.url %> 
</p> 

<%= link_to 'Edit', edit_upload_path(@upload) %> | 
<%= link_to 'Back', uploads_path %> 

edit.html。 erb

<h1>Editing upload</h1> 

<%= render 'form' %> 

<%= link_to 'Show', @upload %> | 
<%= link_to 'Back', uploads_path %> 

_form.html.erb

<%= form_for (@upload), :url => uploads_path, :html => { :multipart => true } do |f| %> 
    <% if @upload.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@upload.errors.count, "error") %> prohibited this upload from being saved:</h2> 

     <ul> 
     <% @upload.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <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.file_field :image %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

謝謝。

編輯:「耙路線」輸出的相關部分:

uploads GET /uploads(.:format)   {:action=>"index", :controller=>"uploads"} 
     uploads POST /uploads(.:format)   {:action=>"create", :controller=>"uploads"} 
    new_upload GET /uploads/new(.:format)  {:action=>"new", :controller=>"uploads"} 
    edit_upload GET /uploads/:id/edit(.:format) {:action=>"edit", :controller=>"uploads"} 
     upload GET /uploads/:id(.:format)  {:action=>"show", :controller=>"uploads"} 
     upload PUT /uploads/:id(.:format)  {:action=>"update", :controller=>"uploads"} 
     upload DELETE /uploads/:id(.:format)  {:action=>"destroy", :controller=>"uploads"} 

回答

3

如此看來錯誤是在我_form部分。

我有一個:url屬性定義,當我不應該有。

回形針需要更新他們的安裝說明,以反映Rails的這一變化3.

在irc.freenode.net上#RubyOnRails美妙的人幫我這一個。