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

ruby-on-rails – Rails:如何通过关联RESTful查询模型?

发布时间:2020-12-17 04:16:02 所属栏目:百科 来源:网络整理
导读:我没有使用 Ruby on Rails获得REST,我希望有人可以帮助我. 想象一下,我正在构建一个跟踪窗口小部件和拥有这些窗口小部件的用户的网站.所以我有一个UsersController和一个WidgetsController,我可以获得一个包含索引操作的Widgets或Users列表: GET /usersGET
我没有使用 Ruby on Rails获得REST,我希望有人可以帮助我.

想象一下,我正在构建一个跟踪窗口小部件和拥有这些窗口小部件的用户的网站.所以我有一个UsersController和一个WidgetsController,我可以获得一个包含索引操作的Widgets或Users列表:

GET /users
GET /widgets

我可以通过show actions获取特定的用户或小部件:

GET /users/id
GET /widgets/id

我明白了.

我感到困惑的是,我将使用RESTful请求来检索属于特定用户的小部件列表?这是发送到UsersController或WidgetsController的请求吗?它使用了7种RESTful操作中的哪一种?

是我创建自定义操作的情况之一吗?我的印象是自定义操作应该很少见,但这似乎是一个非常常见的用例.

谢谢!

解决方法

属于用户foo的小部件列表的URL如下所示:
/users/foo/widgets

然后,您可以选择如何为每个小部件执行URL.这个有可能:

/users/foo/widgets/bar

但我更喜欢这个:

/widgets/bar

您的路线如下所示:

map.resources :users,:has_many => :widgets,:shallow => true
map.resources :widgets,:has_many => :users,:shallow => true

(这是来自记忆,我可能搞砸了一个或多个细节)

处理/ user / foo / widgets的控制器方法是WidgetController的索引操作.它测试user_id参数是否存在,并根据该参数限制返回的小部件. (或者检索foo用户并将@widgets设置为@ user.widgets.)

更新:有一个很好的概述嵌套路由,它回答了我在Rails Guides中的原始问题.

更新2哦是的,我的意思是链接到一些documentation.

(编辑:李大同)

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

    推荐文章
      热点阅读