0
This has been resolved i will post my answer shortlyRails 4從嵌套路由中路由以查看另一個嵌套路由上的頁面
下面我發佈了我的routes.rb以及與它們關聯的所有模型/關係。
我所試圖做的是後一個嵌套的客戶中現場展示頁面上的污物鏈接到PatrolReports(嵌套PatrolHits)..我不斷收到此錯誤:
ActionController::UrlGenerationError at /clients/1/sites/2
No route matches {:action=>"show", :controller=>"patrol_hits/patrol_reports", :id=>"1", :patrol_hit_id=>nil} missing required keys: [:patrol_hit_id]
當我使用在客戶端上該鏈接/ 1 /網站/ 1顯示頁面
<td><center><%= link_to "View", patrol_hit_patrol_report_path(@patrol_hit, patrol_report) %></center></td>
這裏是我所有的網站路線:
# Nests Sites To Clients
resources :clients, controller: 'clients' do
resources :sites, controller: 'clients/sites', except: [:index]
end
# Nests PatrolHit To PatrolRoutes
resources :patrol_routes, controller: 'patrol_routes' do
resources :patrol_hits, controller: 'patrol_routes/patrol_hits', except: [:index]
end
# Nests PatrolReport to PatrolHits
resources :patrol_hits, controller: 'patrol_routes/patrol_hits', except: [:index] do
resources :patrol_reports, controller: 'patrol_hits/patrol_reports', except: [:index]
end
這裏是我的模型和關係:
class Client < ApplicationRecord
has_many :sites, dependent: :destroy
end
class Site < ApplicationRecord
belongs_to :client
has_many :patrol_hits
has_many :patrol_reports, dependent: :destroy
end
class PatrolRoute < ApplicationRecord
has_many :patrol_hits, dependent: :destroy
end
class PatrolHit < ApplicationRecord
belongs_to :site
belongs_to :patrol_route
has_many :patrol_reports, dependent: :destroy
end
class PatrolReport < ApplicationRecord
belongs_to :patrol_hit
belongs_to :site
belongs_to :user
end
這裏是我的耙路線輸出:
Prefix Verb URI Pattern Controller#Action
client_sites POST /clients/:client_id/sites(.:format) clients/sites#create
new_client_site GET /clients/:client_id/sites/new(.:format) clients/sites#new
edit_client_site GET /clients/:client_id/sites/:id/edit(.:format) clients/sites#edit
client_site GET /clients/:client_id/sites/:id(.:format) clients/sites#show
PATCH /clients/:client_id/sites/:id(.:format) clients/sites#update
PUT /clients/:client_id/sites/:id(.:format) clients/sites#update
DELETE /clients/:client_id/sites/:id(.:format) clients/sites#destroy
clients GET /clients(.:format) clients#index
POST /clients(.:format) clients#create
new_client GET /clients/new(.:format) clients#new
edit_client GET /clients/:id/edit(.:format) clients#edit
client GET /clients/:id(.:format) clients#show
PATCH /clients/:id(.:format) clients#update
PUT /clients/:id(.:format) clients#update
DELETE /clients/:id(.:format) clients#destroy
patrol_route_patrol_hits POST /patrol_routes/:patrol_route_id/patrol_hits(.:format) patrol_routes/patrol_hits#create
new_patrol_route_patrol_hit GET /patrol_routes/:patrol_route_id/patrol_hits/new(.:format) patrol_routes/patrol_hits#new
edit_patrol_route_patrol_hit GET /patrol_routes/:patrol_route_id/patrol_hits/:id/edit(.:format) patrol_routes/patrol_hits#edit
patrol_route_patrol_hit GET /patrol_routes/:patrol_route_id/patrol_hits/:id(.:format) patrol_routes/patrol_hits#show
PATCH /patrol_routes/:patrol_route_id/patrol_hits/:id(.:format) patrol_routes/patrol_hits#update
PUT /patrol_routes/:patrol_route_id/patrol_hits/:id(.:format) patrol_routes/patrol_hits#update
DELETE /patrol_routes/:patrol_route_id/patrol_hits/:id(.:format) patrol_routes/patrol_hits#destroy
patrol_routes GET /patrol_routes(.:format) patrol_routes#index
POST /patrol_routes(.:format) patrol_routes#create
new_patrol_route GET /patrol_routes/new(.:format) patrol_routes#new
edit_patrol_route GET /patrol_routes/:id/edit(.:format) patrol_routes#edit
patrol_route GET /patrol_routes/:id(.:format) patrol_routes#show
PATCH /patrol_routes/:id(.:format) patrol_routes#update
PUT /patrol_routes/:id(.:format) patrol_routes#update
DELETE /patrol_routes/:id(.:format) patrol_routes#destroy
patrol_hit_patrol_reports POST /patrol_hits/:patrol_hit_id/patrol_reports(.:format) patrol_hits/patrol_reports#create
new_patrol_hit_patrol_report GET /patrol_hits/:patrol_hit_id/patrol_reports/new(.:format) patrol_hits/patrol_reports#new
edit_patrol_hit_patrol_report GET /patrol_hits/:patrol_hit_id/patrol_reports/:id/edit(.:format) patrol_hits/patrol_reports#edit
patrol_hit_patrol_report GET /patrol_hits/:patrol_hit_id/patrol_reports/:id(.:format) patrol_hits/patrol_reports#show
PATCH /patrol_hits/:patrol_hit_id/patrol_reports/:id(.:format) patrol_hits/patrol_reports#update
PUT /patrol_hits/:patrol_hit_id/patrol_reports/:id(.:format) patrol_hits/patrol_reports#update
DELETE /patrol_hits/:patrol_hit_id/patrol_reports/:id(.:format) patrol_hits/patrol_reports#destroy
patrol_hits POST /patrol_hits(.:format) patrol_routes/patrol_hits#create
new_patrol_hit GET /patrol_hits/new(.:format) patrol_routes/patrol_hits#new
edit_patrol_hit GET /patrol_hits/:id/edit(.:format) patrol_routes/patrol_hits#edit
patrol_hit GET /patrol_hits/:id(.:format) patrol_routes/patrol_hits#show
PATCH /patrol_hits/:id(.:format) patrol_routes/patrol_hits#update
PUT /patrol_hits/:id(.:format) patrol_routes/patrol_hits#update
DELETE /patrol_hits/:id(.:format) patrol_routes/patrol_hits#destroy
static_home GET /static/home(.:format) static#home
static_about GET /static/about(.:format) static#about
static_help GET /static/help(.:format) static#help
static_feature_request GET /static/feature_request(.:format) static#feature_request
請讓我知道如果你需要任何進一步的細節生病更樂意將它張貼和或放棄訪問我的回購
我其實只是解決了這個問題,我會在後幾篇文章中發表。感謝壽 –