Ruby On Rails:ActionController :: RoutingError没有路由匹配

时间:2013-01-27 19:28:21

标签: ruby-on-rails-3.1 rails-routing

我正在使用此example for uploading files in Ruby on Rails. 我在路由方面遇到了一些问题:

错误:

ActionController::RoutingError (No route matches {:action=>"show", :controller=>"cars", :locale=>#<Car id: 19, car_name: "bwl",, created_at: "2013-01-27 19:12:13", updated_at: "2013-01-27 19:12:13">}):
  app/models/arraydb.rb:46:in `to_jq_car'

routes.rb中:

resources :cars
match '/show', :to =>'car#index'

root :to => 'cars#index'

cars_controllers.rb

class CarsController < ApplicationController


  def index
    @cars = Car.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @cars.map{|car| car.to_jq_car } }
    end
  end


  def view
    @car = Car.find(params[:id])

    respond_to do |format|
      format.html 
      format.json { render json: @car }
    end
  end



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


  def create
    p_attr=params[:car]
    p_attr[:car] = params[:car][:car].first if params[:car][:car].class == Array
    @car = Car.new(p_attr)

    respond_to do |format|
      if @car.save
        format.html {
          render :json => [@car.to_jq_car].to_json,
          :layout => false

        }

        format.json { render json: [@car.to_jq_car].to_json, status: :created, location: @car }
      else
        format.html { render action: "new" }      
        format.json{ render json: {name:(@arraydb.car_name).split(".").first ,error: @car.errors.messages[:car_name]}, :status =>422}

      end
    end
  end



  def destroy
    @car = Car.find(params[:id])

    @car.destroy

    respond_to do |format|
      format.html { redirect_to cars_url }
      format.json { head :no_content }
    end
  end



end

并在car.rb中我有以下功能:

 def to_jq_car
    {
      "name" => (read_attribute(:arraydb_name)).split(".").first,
      "url" => car.url(:original),
      "delete_url" => car_path(self),
      "delete_type" => "DELETE",


    }
  end

rake routes:

cars GET        (/:locale)/cars(.:format)                                  cars#index {:locale=>/en|de|es|ru|zh_cn|ar/}
POST       (/:locale)/cars(.:format)                                  cars#create {:locale=>/en|de|es|ru|zh_cn|ar/}
new_car GET        (/:locale)/cars/new(.:format)                              cars#new {:locale=>/en|de|es|ru|zh_cn|ar/}
edit_car GET        (/:locale)/cars/:id/edit(.:format)                         cars#edit {:locale=>/en|de|es|ru|zh_cn|ar/}
car GET        (/:locale)/cars/:id(.:format)                              cars#show {:locale=>/en|de|es|ru|zh_cn|ar/}
PUT        (/:locale)/cars/:id(.:format)                              cars#update {:locale=>/en|de|es|ru|zh_cn|ar/}
DELETE     (/:locale)/cars/:id(.:format)                              cars#destroy {:locale=>/en|de|es|ru|zh_cn|ar/}
show            (/:locale)/show(.:format)                                      car#index {:locale=>/en|de|es|ru|zh_cn|ar/}
root            /(:locale)(.:format)                                           cars#index {:locale=>/en|de|es|ru|zh_cn|ar/}

提前致谢

1 个答案:

答案 0 :(得分:0)

刚刚遇到同样的问题并设法解决它

不确定你的情况是否与我相同但仍然是..

检查您的网址是否没有尾随'/'

例如

http://localhost:3000/properties/

最后'/'在我的案例中无用

相关问题