问题标签 [nested-routes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
862 浏览

ruby-on-rails-3 - Ruby on Rails 教程,第 11 章,练习 7 - 打破我的 rspec 测试

我正在阅读 Michael Hartl 关于 Rails 的优秀教程,但我在第 11 章的练习 7 中遇到了麻烦。

这个练习是:

添加一个嵌套路由,以便 /users/1/microposts 显示用户 1 的所有微帖子。(您还必须添加一个 Microposts 控制器索引操作和相应的视图。)

我通过将routes.rb文件更改为读取成功地做到了这一点:

我能够从浏览器成功调用 /users/1/microposts 。但是,microposts_controller_spec.rb 中的大多数测试现在都被破坏了。运行自动测试时收到“无路由匹配”错误。例如,第一个测试,它简单地读取:

现在产生以下错误:

1) MicropostsController 访问控制应该拒绝访问 'create' 失败/错误:post :create 没有路由匹配 {:controller=>"microposts", :action=>"create"}

当我检查rake routes

,我发现这个条目:

这表明该路线确实存在。

有没有其他人在完成教程时遇到过这个问题?引入嵌套路由后,是否需要在规范文件中进行更改?Rspec 是否适用于嵌套路由?

谢谢

0 投票
2 回答
317 浏览

ruby-on-rails - Rails 双嵌套路由,分解

我有这些路线:

这只是为了使 url 不必双重嵌套,我想将 url 保持在最多两个对象的深度。

问题是对于事件,我想要求 /sub_categories/:sub_category_id 作为 path_prefix,但使用

给了我这样的路线

我想拥有的是

因为任何时候用户想要访问 *sub_category*,我希望 url 要求提供 *category_id*,但是如果用户想要查看事件,则必须提供 sub_category_id。

0 投票
1 回答
115 浏览

asp.net - 帮助 .net mvc 路由

我一直没能找到类似于 rails 嵌套资源的东西。我希望能够定义像

这只是简单ActivitiesController的 , Index, 与Contributor_Id = 3

我知道我可以手动定义这个特定的路线(我不知道如何),但我在这里寻找的实际上是一些关于为这些场景提供灵活解决方案的建议。

0 投票
3 回答
8706 浏览

ruby-on-rails - Rails 3 link_to 路由(编辑)嵌套资源

抱歉,如果在其他地方问过这个问题,但我无法弄清楚。我有一个包含部分、主题和回复的论坛。我正在尝试从显示主题视图中编辑和删除回复。这是结构:

所以我做了一个 rake routes 来查看我在哪里链接我的编辑回复。我看到它的 edit_section_topic_reply 并在我的 link_to 中添加了 _path 。现在这是我想不通的。我传递了什么参数?不应该是:

当我这样做时,我ActionController::RoutingError会进入。Topics#show

似乎它没有传递 ID,但是之前的巢,我的新主题工作正常

0 投票
2 回答
1966 浏览

ruby-on-rails-3 - 使用嵌套路由 Rails 3 而实际上不允许访问父资源

我正在使用 Rails 3,我有两个模型 EquipmentGroup 和 Reservation。我希望预订成为设备组的嵌套资源,以便我可以使用以下 URL 访问它们:

但是,我不想为设备组创建路线。我可以通过以下方式实现这一点,但这似乎是一个 hack:

有一个更好的方法吗?我似乎无法在文档中轻松找到答案。

0 投票
1 回答
1744 浏览

ruby-on-rails - Rails 3 / 嵌套路由:在用户显示页面中重定向到正确的微博集合的 URL 的问题

我对不显示正确 url 的嵌套路由有疑问。

我使用下面的代码,但它呈现如下:

代替:

对于用户展示页面中显示的每个微博。

协会

路线

Microposts_controller

microposts/_micropost.html.erb

用户/show.html.erb

我看不出我错在哪里。非常感谢您的帮助!

编辑

路线:

0 投票
0 回答
290 浏览

ruby-on-rails-3 - 在 Rails 3 中使用带有嵌套路由的表单时出现问题

我有一个数据库结构,其中我的文章有很多人(通过连接,但工作正常)

我希望发生的是,当人们创建一篇文章时,他们可以同时创建新的人

即路径应该是article/new/people/new的形式

事实上,在不使用嵌套路由的情况下,我使用这种方法来管理它

article.rb(模型)

attr_accessor :new_person

文章控制器.rb

表单.erb

这在一定程度上可以正常工作,但现在表单变得越来越复杂,其他字段我认为我可以重构它以利用嵌套路由。

此外,它为创建控制器添加了很多逻辑——更进一步,我可能会考虑将这些操作设为 javascript,在这种情况下,我知道确定控制器按下的特定按钮会更加复杂。

由于这些原因,我认为嵌套路由方法可能更合适。

对于现有文章,它可以正常工作,例如/articles/1/people/new没有问题。

我知道嵌套表单是出于 html 验证等原因而禁止使用的,因此我尝试了多种 form_for 和 fields_for 组合来实现以下目标:

在文章/新页面上

将主表单提交给articles/new 将带有new_person 字段的“子”表单提交给articles/new/people/new

并尽可能轻松地通过 UJS 进行更改

我认为我得到的最温暖的是这个错误

我猜这个问题是没有 article_id 可以将这个人与那个时候联系起来。

但事实上,我只对将那个人添加到数据库中然后创建与文章的关系商店感兴趣,然后在保存整篇文章时将其存储起来。

为长篇文章道歉,但想在我的问题中全面。

任何建议,包括更适合我的目标的替代方法,将不胜感激。我已经观看了与嵌套表单和嵌套路线相关的铁路广播,并阅读了我可以在网上找到的所有内容,但还没有找到 /model/new/submodel/new 表单问题的解决方案。

非常感谢。

0 投票
2 回答
5045 浏览

ruby-on-rails-3 - 创建嵌套资源时使用respond_with的Rails路由错误

我正在创建的一个简单的 Rails 3 应用程序遇到以下问题。它让我发疯。

我的模型:

我的路线.rb:

我的rake routes输出:

我的 vehicle_pictures_controller.rb:

当我发布新的车辆图片时,会按预期调用 create 方法,但出现此错误:

如果我改变事情的respond_with工作respond_with(@picture, :location => vehicle_picture_url(@vehicle.id, @picture.id))

但据我了解,我不应该这样做。我究竟做错了什么?

0 投票
1 回答
708 浏览

ruby-on-rails - 嵌套路由渲染错误

当验证失败的用户消息传递时,我试图维护一个漂亮的 URL。

我有一个如下所示的路由文件:

所以new_user_message_path(@user)返回:

消息的 new.erb 视图生成正确的代码:

当验证失败时,它会显示表单错误但会呈现错误的操作:

所以用户第二次提交表单时“ create ”方法找不到user_id

这是我的控制器方法:

我的表单视图:

0 投票
2 回答
1587 浏览

ruby-on-rails - 如何定义适用于任何模型实例的控制器函数

为 Rails 应用程序实现版本控制我希望有一个视图来显示模型的所有版本,并带有一些额外的功能,如还原等。我使用paper_trailgem 进行版本控制。

我知道我可以通过versions为每个模型编写一个控制器函数和一个视图来做到这一点,但我想一次为所有模型做这件事。这应该是可能的,因为model.versions属性的结构总是相同的。

/pages/testpage/versions理想情况下,URL 应该testpage是页面 id 的样子。

这似乎类似于 rails 中嵌套路由的概念。

然而,嵌套路由的问题是:

  • 每个型号都需要额外配置
  • testpage在不知道它是哪个模型的情况下,我无法访问该对象。我也无法找到确定模型的方法,因为提供给我的版本控制器的唯一东西是参数哈希。

我完全愿意接受可能不符合我最初想法的替代解决方案。