2012-02-08 21 views
0

ルーティングに関するトピックを何度も読んだことがありますが、それらのどれも私を助けないでしょう。だから私はまだRubyを初めて使っているので、私の試行はネストされたルーティングroutes.rb

私はユーザーが自分のプロジェクトを持ってほしいと思っています。これらのプロジェクトは、倉庫、顧客、トランククワンを持つことです。 〜/ user/1234/project/1/warehouse/...のようなURLを使用して、排他的使用を許可します。これは私のroutes.rbをがどのように見えるかです:

<strong>Projects</strong> <%= link_to project_path(@user) %> 
を[すでにすべては私にエラーメッセージを与えたさまざまなバリエーションを試してみました]

resources :users do 
    resources :projects do 
    resources :transquans 
    resources :warehouses 
    resources :clients 
    end 
end 

これは私がユーザー/ show.html.erbからプロジェクトを呼び出してみてください方法です

指定されたユーザーを呼び出そうとすると、私が足場を経由してプロジェクトを作成し、「ショー」アクションに触れたことはありませんが、ある

No route matches {:action=>"show", :controller=>"projects", :id=>#<User id: 64810937, name: "Tester 1", email.... 

のようなメッセージを与える...

解決方法を見つけようとすると、その日の費用がかかりますが、解決策はそれほど難しくないと思います。

編集:私は今、Ryan BatesのScreencastで最初のいくつかの手順を4:52分まで続けました。 http://localhost:3000/users/768773789/projects

を打ったときにそれにもかかわらず、私はschema.rbは任意のためのさらに感謝し、この

create_table "clients", :force => true do |t| 
    t.string "name" 
    t.string "codename" 
    t.integer "demand" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
end 

create_table "projects", :force => true do |t| 
    t.string "name" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
end 

のように見えながら

SQLite3::SQLException: no such column: projects.user_id: SELECT "projects".* FROM  "projects" WHERE ("projects".user_id = 768773789) 

を言って、私は理解していないさらに別のエラーメッセージが表示されます助けの一種。これは私を怒らせる。

+0

'rake routes'コマンドを実行すると、現在のルートが表示されます。 – taro

+0

これは、使用しているWebフレームワークであることを前提として、Ruby on Railsタグを追加しました。 (Rubyはプログラミング言語であり、Railsはそれを使用するWebフレームワークです)。これが正しくない場合は、タグを修正して質問を明確にしてください。 – Phrogz

+0

'rake routes'を投稿する必要があります – Zepplock

答えて

0

project_pathヘルパーメソッドは、「トップレベル」のプロジェクトがあり、GET /project/idなどのルートがある場合にのみ機能します。エンティティProjectが存在するため、完全に失敗しません。このような場合に誤解を招くルートマッチはありません。

magazine_ads_urlhereと同様に、user_projects_pathヘルパーメソッドが必要です。

+0

' 'ルートはありません{:action =>" show "、:controller =>" projects "}'はまだ得られます。私は 'match 'users /:id/projects'、:to => 'users_projects#index''でマッチさせようとしています。これも間違いの原因になるでしょうか? – Mariushi

0

rake routesの出力を確認すると、知る必要があることがわかります。

+0

残念ながら、私は出力に何の問題も見ることができません。私はそのイメージをhttp://dl.dropbox.com/u/45905590/rakeroutes.png – Mariushi

+0

にアップロードしました。ユーザーのためのすべてのプロジェクトを表示するには、 'user_projects_path(user)'とユーザの特定のプロジェクトを参照してください。 'user_project_path(project)' – ksol

関連する問題