0

私は自分のプロファイル (user_path) からユーザーを取得して、自分の車 (new_user_car_path) を登録できるようにしようとしています。しかし、私はこのエラーが発生しました:

Routing Error
No route matches {:action=>"new", :controller=>"cars"}

そのために私は次のroutes.rbを持っています

Estaciones::Application.routes.draw do
root :to => "static_pages#home"
match '/contact', :to=>'static_pages#contact'
match '/about', :to=>'static_pages#about'
devise_for :users
resources :users do
resources :cars, :only => [:new, :create, :edit, :destroy]
end

これは user_path の一部です

<div class="container">

  <fieldset>
    <h1><%= @user.email %></h1>
    <br>

    <h2>options</h2>
    <p>
    <strong>new car registration</strong>
    <%= link_to "Sign up now!", new_user_car_path, :class => "btn btn-primary" %>

    </p>
    <p>
    <strong>all cars view</strong>

    </p>
  </fieldset>
</div> <!-- /container -->

と私の CarsController

class CarsController < ApplicationController
    def new
      @car = Car.new
    end

    def create
        @car = current_user.cars.build(params[:car])
        if @car.save
            redirect_to current_user, :flash => { :success => "car created!" }
        else
            redirect_to new_user_car_path, :flash => { :success => "sorry try again" }
        end
    end
end
4

1 に答える 1

0

どこに行くべきかを決定できるように、ルートに情報を渡す必要があります。

ユーザーのために新しい車を作成したい場合は、ユーザーを渡す必要があります。そうしないと、レールはどこからユーザーを取得するかわかりません...これは、1秒以上考えれば論理的です...

new_user_car_path(user)
于 2012-07-24T20:54:09.233 に答える