加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Ruby on Rails嵌套具有has_one关联的路由

发布时间:2020-12-17 03:41:06 所属栏目:百科 来源:网络整理
导读:我有两个型号: 保留: class Reservation ActiveRecord::Base has_one :car_emissionend CarEmission: class CarEmission ActiveRecord::Base belongs_to :reservationend 以下路线: resources :reservations do resources :car_emissionsend 现在,当我想
我有两个型号:

保留:

class Reservation < ActiveRecord::Base
  has_one :car_emission
end

CarEmission:

class CarEmission < ActiveRecord::Base
  belongs_to :reservation
end

以下路线:

resources :reservations do 
  resources :car_emissions
end

现在,当我想创建新的car_emission时,我必须访问这样的url:

http://localhost:3000/reservations/1/car_emissions/new

当我想编辑时,我必须访问:

http://localhost:3000/reservations/1/car_emissions/1/edit

无论如何要更改我的car_emission编辑链接将如下所示的路线:

http://localhost:3000/reservations/1/car_emission

解决方法

你想做几件事:

1. Create singular resource
2. Change the `edit` path for your controller

Singular Resource

正如@sreekanthGS所建议的那样,你首先要创造一个独特的资源.这与资源方法的工作方式相同,只不过它将您的路由视为单个记录;取消索引路线等:

#config/routes.rb
resources :reservations do
    resource :car_emission # -> localhost:3000/reservations/1/car_emission
end

编辑

这将为你的car_emission创建一组RESTful路由,但是当你点击“裸”链接时它仍然会带你进入car_emissions#show动作

你最好这样做:

#config/routes.rb
resources :reservations do
    resource :car_emission,except: :show,path_names: { edit: "" }
end

当您点击“裸”链接时,这将带您进行编辑操作

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读