2016-05-31 5 views
0

In Rails 4.2.6, ich schaffe verschachtelte Ressourcen wie dieseUmbenennen Parameter in verschachtelten Ressourcen

routes.rb:

resources :analysis, param: :project_id do 
    resources :configuration 
end 

resources :decision, param: :project_id do 
    resources :configuration 
end 

Es funktioniert gut, wenn ich in der Analyse oder Entscheidung Controller bin. Wenn ich jedoch im Konfigurationscontroller bin, erhalte ich den Parameter :analysis_project_id oder :decision_project_id. Wie kann ich das ändern, damit ich immer noch :project_id erhalte?

Ich möchte meinen Konfigurations-Controller nicht anpassen, um zu wissen, dass er in verschiedenen Ressourcen verschachtelt ist.

Antwort

0

nur dies, müssen Sie nicht senden params hier, es wird automatisch mit entsprechend zu Ihrem action.

resources :analysis do 
     resources :configuration 
    end 

wenn Sie Routen brauchen wie diese

analysis_configuration_index GET  /analysis/:analysis_id/configuration(.:format)   configuration#index 
           POST  /analysis/:analysis_id/configuration(.:format)   configuration#create 
new_analysis_configuration GET  /analysis/:analysis_id/configuration/new(.:format)  configuration#new 
edit_analysis_configuration GET  /analysis/:analysis_id/configuration/:id/edit(.:format) configuration#edit 
analysis_configuration GET  /analysis/:analysis_id/configuration/:id(.:format)  configuration#show 
         PATCH  /analysis/:analysis_id/configuration/:id(.:format)  configuration#update 
         PUT  /analysis/:analysis_id/configuration/:id(.:format)  configuration#update 
         DELETE /analysis/:analysis_id/configuration/:id(.:format)  configuration#destroy 
      analysis_index GET  /analysis(.:format)          analysis#index 
         POST  /analysis(.:format)          analysis#create 
      new_analysis GET  /analysis/new(.:format)         analysis#new 
      edit_analysis GET  /analysis/:id/edit(.:format)       analysis#edit 
       analysis GET  /analysis/:id(.:format)         analysis#show 
         PATCH  /analysis/:id(.:format)         analysis#update 
         PUT  /analysis/:id(.:format)         analysis#update 
         DELETE /analysis/:id(.:format)         analysis#destroy 
+0

Damit habe ich den Parameter ': id' in dem Analyse-Controller, der auf 'umbenannt: analysis_id' in dem Konfigurationscontroller. Ich möchte den gleichen Parameternamen in beiden. –

+0

Darf ich fragen, warum Sie den gleichen Parameternamen haben möchten, da er für beide Controller zugänglich ist. –

+0

Da der Konfigurations-Controller in mehreren Ressourcen verschachtelt ist und die ': project_id' jedes Mal anders ist, kann ich keinen generischen Code schreiben. –

Verwandte Themen