私はRubyとRuby on Railを初めて使い、配線に問題があります。私は3つのコントローラ、アプリケーションコントローラ、バイクコントローラ、ライドコントローラを持っています。次のように私のルーティングテーブルは次のとおりです。ルーティングエラーR
Rails.application.routes.draw do
get 'cycle_tracker/index'
resources :rides
resources :bikes
root 'cycle_tracker#index'
私はrails routes
を実行すると、それは次のことをもたらします:
Prefix Verb URI Pattern Controller#Action
cycle_tracker_index GET /cycle_tracker/index(.:format) cycle_tracker#index
rides GET /rides(.:format) rides#index
POST /rides(.:format) rides#create
new_ride GET /rides/new(.:format) rides#new
edit_ride GET /rides/:id/edit(.:format) rides#edit
ride GET /rides/:id(.:format) rides#show
PATCH /rides/:id(.:format) rides#update
PUT /rides/:id(.:format) rides#update
DELETE /rides/:id(.:format) rides#destroy
bikes GET /bikes(.:format) bikes#index
POST /bikes(.:format) bikes#create
new_bike GET /bikes/new(.:format) bikes#new
edit_bike GET /bikes/:id/edit(.:format) bikes#edit
bike GET /bikes/:id(.:format) bikes#show
PATCH /bikes/:id(.:format) bikes#update
PUT /bikes/:id(.:format) bikes#update
DELETE /bikes/:id(.:format) bikes#destroy
root GET / cycle_tracker#index
私は(私は単に私からのリンクを作成しようとしている以下のいます新しい乗り物/メインページ。
<%= link_to 'rides', :controller => new_ride_path %>
私がしようとするとアクセスhttp://127.0.0.1:3000/rides/new場合、期待どおり、それは動作しますが。しかし、私は単純にしようとすると、アクセスhttp://127.0.0.1:3000ならば、私が取得します次
showing D:/Dev/CycleTracker/app/views/cycle_tracker/index.html.erb where line #2 raised:
No route matches {:action=>"index", :controller=>"rides/new"}
私が代わりにパスのnew_ride_urlを使用しようと、私は、次を得る:
Showing D:/Dev/CycleTracker/app/views/cycle_tracker/index.html.erb where line #2 raised:
No route matches {:action=>"index", :controller=>"http://127.0.0.1:3000/rides/new"}
私はこれを想像するが、おそらくかなり簡単な問題であるが、任意のヘルプは高く評価しました。
それは簡単なことだったが!私が見たすべての例では、コントローラのビットを使用するように言いましたが、気にしません。ありがとうございました。 – Andrew
旧バージョンのRailsの古い構文かもしれませんか?私はそれを見たことがないように確信しています。一般に '_path'という名前だけが必要です。 – kuwantum