[英]Rails 4 Routing from within a Nested route to view a page on another nested route
這個問題已經解決了,我會盡快發布答案
在下面,我發布了route.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]
當我在clients / 1 / site / 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
如果您需要任何其他詳細信息,請與我聯系,我們將不高興將其發布或允許訪問我的倉庫
patrol_hit_patrol_report_path(@patrol_hit, patrol_report)
看起來patrol_report
是nil。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.