0

再度ご迷惑をおかけして申し訳ありませんが、これらのルートは私を夢中にさせます。後で私のアプリで、ユーザーが新しい車を作成すると、ユーザーが「新しい車」を押したときに作成された車を表示する必要があります。

<div class="container">
    <h2>new car registration</h2>

    <%= form_for ([@user,@car]) do |f| %>
      <div><%= f.label :brand %><br />
      <%= f.text_field :brand %></div>

      <div><%= f.label :color %><br />
      <%= f.text_field :color %></div>

      <div><%= f.label :model %><br />
      <%= f.text_field :model %></div>

      <div><%= f.label :year %><br />
      <%= f.text_field :year %></div>

      <div><%= f.submit "new car",:class => "btn btn-primary" %></div>
    <% end %>
    <br />
    <%= link_to "Back", current_user,:class => "btn btn-primary"  %>
  </div>

わかりました私のCarscontrollerはこれです:

class CarsController < ApplicationController
def new
    @user = User.find(params[:user_id])
    @car = @user.car.build
end

def create
    @user = User.find(params[:user_id])
    @car = @user.car.build(params[:car])
      if @car.save
        #flash[:notice] = "new car created success"
        redirect_to user_car_path#current_user, :flash => { :notice => "car created!" }
      else
        redirect_to new_user_car_path ,:flash => { :notice => "sorry try again :(" }
      end
end

def show
  @car = current_user.car.find(params[:id])
  #@car = Car.find(params[:id])
  #redirect_to user_car_path
end

def index
    @car=Car.all
    respond_to do |format|
    format.html  #index.html.erb
    format.json  { render :json => @car }
  end
 end
end

したがって、ユーザーが新しい車を押すと、それが表示されます

Routing Error

No route matches {:action=>"show", :controller=>"cars"}
Try running rake routes for more information on available routes.

新しい車を表示する代わりに

これが私の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

終わり

4

3 に答える 3

1

試す:

redirect_to user_car_path(@user, @car)

http://guides.rubyonrails.org/routing.html#nested-resources

于 2012-07-25T20:58:25.073 に答える
1

ショーアクションは次のようになります。

 def show
    @user = User.find(params[:user_id])     
    @car = @user.cars.find(params[:id]) 
    redirect_to user_car_path(@user, @car)  
 end

これが機能しない場合はお知らせください。

編集: routes.rbにエラーがあり、追加のキーワードがありませんend。そうすれば解決します

于 2012-07-25T21:08:33.723 に答える
0

config / routers.rbファイルを投稿できますか?ネストされたルートが正しく設定されていないと思いますが、ファイルを確認すると役立ちます。

于 2012-07-25T20:41:17.463 に答える