Rails嵌套路由取决于current_user

时间:2016-03-25 04:01:03

标签: ruby-on-rails ruby authentication routing

我正在尝试制作一个预订应用程序,允许用户进行帐号然后预订,但是没有帐户的人也应该能够预订。

到目前为止,我有一个用户,预订和订单模型。我在预订和订单之间建立了一对一的联系。截至目前我的routes.rb是这样的:

resources :reservations do
 resources :orders
end

此协会目前在我的申请中正常运作。我也可以在我的应用程序中创建一个用户并让他们登录但我还没有加入这两个用户。

我知道我必须在用户和预订之间建立一对多的关系'has_one'顺序,但是我在前进中遇到问题的方法是尝试考虑如何添加用户资源以便它不会无论访问该应用程序的访问者是否拥有帐户。如果我朝那个方向走,我不确定控制器和路线会是怎样的。

如果我将以下内容添加到我的routes.rb:

resources :users do
 resources :reservations do
  resources :orders
 end
end

我觉得我总是需要有一个用户来创建预订。如果用户未登录或没有帐户,则不确定如何处理该问题。

我已经尝试过寻找解决方案,但我没有遇到任何看起来对我的情况有帮助的事情。

非常感谢指导。

1 个答案:

答案 0 :(得分:0)

如果您不需要用户创建预订,则不希望在getJMSCorrelationID下嵌套Microsoft.Office.Interop dll - 这样做需要/reservations道路,你显然没有。只需将两者留在顶层:

/users

您的用户仍然可以进行多次预订,即使该网址没有完全反映出来(并且所有用户,预订和订单,您的路径都会变得非常深)。如果您想要特定于用户的预订索引,您仍然可以按照现有方式添加嵌套在用户下的第二个路线:

:user_id

然后,您的应用会同时响应resources :users resources :reservations resources :users do resources :reservations end resources :reservations /reservations中的逻辑如果存在,则可以应用/users/:user_id/reservations

ReservationsController