Mat*_*ski 6 ruby routes ruby-on-rails ruby-on-rails-4
我有两个模型:
预订:
class Reservation < ActiveRecord::Base
has_one :car_emission
end
Run Code Online (Sandbox Code Playgroud)
汽车排放:
class CarEmission < ActiveRecord::Base
belongs_to :reservation
end
Run Code Online (Sandbox Code Playgroud)
以及以下路线:
resources :reservations do
resources :car_emissions
end
Run Code Online (Sandbox Code Playgroud)
现在,当我想创建新的 car_emission 时,我必须像这样访问 url:
http://localhost:3000/reservations/1/car_emissions/new
Run Code Online (Sandbox Code Playgroud)
当我想编辑时,我必须访问:
http://localhost:3000/reservations/1/car_emissions/1/edit
Run Code Online (Sandbox Code Playgroud)
无论如何要更改我的 car_emission 编辑链接将如下所示的路线:
http://localhost:3000/reservations/1/car_emission
Run Code Online (Sandbox Code Playgroud)
你想做几件事:
1. Create singular resource
2. Change the `edit` path for your controller
Run Code Online (Sandbox Code Playgroud)
正如 所建议的那样@sreekanthGS
,您首先最好创建一个单一的资源。这与方法的工作方式相同resources
,只是它将您的路线视为单个记录;取消index
路线等:
#config/routes.rb
resources :reservations do
resource :car_emission # -> localhost:3000/reservations/1/car_emission
end
Run Code Online (Sandbox Code Playgroud)
编辑
这将为您创建一组 RESTful 路由,但当您点击“裸”链接时car_emission
,它仍会带您进入car_emissions#show
操作
你最好这样做:
#config/routes.rb
resources :reservations do
resource :car_emission, except: :show, path_names: { edit: "" }
end
Run Code Online (Sandbox Code Playgroud)
edit
当您点击“裸”链接时,这将带您进入操作
归档时间: |
|
查看次数: |
2947 次 |
最近记录: |