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

ruby-on-rails – Rails:在多个嵌套的restful路由中嵌套相同的

发布时间:2020-12-17 03:39:27 所属栏目:百科 来源:网络整理
导读:这很简单,但是在框架/语言之间切换回来让我自己怀疑.试图计算has_many的路由:通过Rails中的关系. #Userhas_many :reservations,:dependent = :destroyhas_many :events,:through = :reservations#Reservationbelongs_to :userbelongs_to :event#Eventhas_ma
这很简单,但是在框架/语言之间切换回来让我自己怀疑.试图计算has_many的路由:通过Rails中的关系.

#User
has_many :reservations,:dependent => :destroy
has_many :events,:through => :reservations

#Reservation
belongs_to :user
belongs_to :event

#Event
has_many :reservations,:dependent => :destroy
has_many :attendees,through => :reservations,:source => :user

我想要路线,从用户模型我可以快速建立/创建一个新的预订到特定的事件(反之亦然),但不知道如何创建它们.这看起来很奇怪:

resources :users do
  resources :reservations,only: [:new,:create,:destroy]
end

resources :events do
  resources :reservations,:destroy]
end

无论如何,只是寻找验证,或者可能是另一种方法来处理这个问题.理想情况下,在用户可以点击的事件旁边的页面上有一个链接,(通过ajax或页面重新加载)他们会进行“预订”.

出于同样的原因,我需要路由来查看对给定事件有预订的每个用户.
并且保留给定用户的每个事件.

解决方法

好问题!我想我会选择这套路线:

resources :events do
  resources :reservations,:destroy]
end

resources :users do
  get 'reservations',:on => :member
end

您的预订将与活动密切相关.我认为从建模的角度来看这是有道理的.根据您的描述,听起来像登录用户将点击链接以在事件下创建预订.通过将预订与事件相关联,您可以知道仅通过路线构建预订的事件,并且因为您拥有经过身份验证的用户,您可以假设使用哪个用户(可能来自您的会话).例如,POST到/ events / 5 / reservations之类的路由将为当前登录的用户创建事件5的预留.

对用户资源的附加获取操作允许您提供端点来回答问题特定用户具有哪些预留?

理想情况下,您希望确保只有一组端点用于管理资源.在通过非资源操作获取其他信息方面,更多的是偏好问题以及您希望支持的用例.

(编辑:李大同)

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

    推荐文章
      热点阅读