gpt4 book ai didi

ruby-on-rails - rails : nesting same resource in multiple nested restful routes?

转载 作者:行者123 更新时间:2023-12-04 23:24:55 25 4
gpt4 key购买 nike

这很容易,但是在框架/语言之间来回切换让我怀疑自己。正在尝试为 has_many :through 制定路线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

我想要从 User 模型开始的路线,我可以快速构建/创建到特定事件的新预订(反之亦然),但不确定如何创建它们。这看起来很奇怪:
resources :users do
resources :reservations, only: [:new, :create, :destroy]
end

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

无论如何,只是寻找验证,或者可能是处理此问题的替代方法。理想情况下,页面上的事件旁边有一个链接,用户可以单击该链接(通过 ajax 或页面重新加载)他们会进行“保留”。

出于同样的原因,我需要路由来查看对给定事件进行预订的每个用户。
以及为给定用户保留的每个事件。

最佳答案

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

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

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

您的预订将与事件密切相关。我认为从建模的角度来看这是有道理的。根据您的描述,听起来登录用户会在事件中单击链接以创建预订。通过将预订与事件相关联,您可以简单地从 route 知道要为哪个事件建立预订,并且因为您有一个经过身份验证的用户,您还可以假设要使用哪个用户(可能来自您的 session )。例如,像 POST 到 /events/5/reservations 这样的路由将为当前登录的用户创建事件 5 的保留。

附加 getuser 的操作资源允许您提供端点来回答问题 What reservations does a particular user have?
理想情况下,您希望确保只有一组端点来管理资源。在通过非资源操作获取附加信息方面,这更多是偏好问题以及您想要支持的用例。

关于ruby-on-rails - rails : nesting same resource in multiple nested restful routes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14390294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com