问题标签 [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 回答
175 浏览

ruby-on-rails-3 - 索引中的嵌套资源链接不起作用

好的,所以我有一个帖子索引,并希望将其链接到我的幻灯片索引,但由于某种原因,我不断收到此错误

当我与此链接时

如果我在我的帖子编辑查看器中使用上面相同的链接,它似乎工作正常....有什么建议吗?

我基本上想从我的帖子中的表格链接到这个....../posts/:id/slides

路线.RB

后模型

幻灯片模型

发布索引视图

后控制器

滑轨控制器

0 投票
3 回答
3343 浏览

ruby-on-rails - 没有模块前缀路由路径的 Rails 命名范围模型对象

我对 Rails 路由器和表单生成器有一点问题。我的应用程序具有模型和控制器的命名空间模块。模块用于更容易抽象到另一个项目。

我使用routes.rb范围内的方法而不是命名空间,因为我没有“丑陋”的路径助手。

看起来像:

问题是当我想编辑分类(url:)时taxonomies/1/edit出现错误:

因为我的路线只是taxonomy_path

有什么方法form_for @taxonomy可以识别该路线的范围?不使用form_for @taxonomy, url: taxonomy_path(@taxonomy)是不能治愈的。因为控制器方法中的@taxonomy 对象respond_with @taxonomy总是引用到taxonomy_taxonomy_url

我的模型:

和控制器:

0 投票
2 回答
759 浏览

ruby-on-rails - 更正 Rails 中的无效资源路由

在 Rails 中使用嵌套资源路由时我注意到的一件事是,从技术上讲,用户可以访问子资源存在的路由(因此可以正确显示),但是父资源的 id 表示一个对象实际上与子资源无关。

例如,在路由users/:user_id/post/:id中,用户可以输入一个路由,其中:user_id​​表示没有发布对应于 的帖子的用户:id

解决此问题的最佳方法是什么,以便如果用户访问无效的 URL,服务器会将用户重定向到正确的 URL?

我已经在我的控制器中放置了一些代码来处理这个问题,但是必须检查每个控制器操作中的路径然后将用户重定向到适当的 url,这有点尴尬,特别是因为每个操作的 URL 帮助程序都不同。

( edit_user_post_path(@user, @post), new_user_post_path(@user, @post))

必须有更好的方法,对吧?

0 投票
1 回答
40 浏览

ruby-on-rails - 无法处理嵌套资源

我有这样的问题:我不需要嵌套所有资源,因为我只需要两个动作。

首先 - 显示与 1 个网站相关的所有报告。

第二 - 显示所有报告。

当我像这样重写 routes.rb 中的代码时:

这是我的行动:

视图代码:

但是当我调用它时,我得到了错误:

我做错了什么?

0 投票
1 回答
3004 浏览

ruby-on-rails - 嵌套资源和限制创建的路由 :only 和 :except

大家好,

有人可以帮助我使用嵌套资源及其最佳实践。

我想将我的:events路线限制为只有:showand :index,这是正确的做法吗?

这是最好的方式还是更多 Rubyist 处理此类事情的方式?我已经添加了两行,resources :events或者有没有办法将它们全部组合在一个块中?

提前致谢。

0 投票
1 回答
256 浏览

ruby-on-rails-3 - Backbone.js + Rails 3 urls 和带有嵌套路由的集合

我正在尝试使用 Rails 和 Backbone.js 创建一个新应用程序,但是有很多嵌套关系使它变得相当困难。

在 Rails 方面,我使用成分和过敏原之间的 HABTM 关系。我正在尝试获取与一系列过敏原相关的成分。计划是使用数组查询 Allergens 表,获取它们的 id,然后根据 AllergensIngredients 表查询它以获取成分 id。

路由嵌套如下:

网址为“/ingredients/:ingredient_id/allergens”。它非常适合 Rails。在 Backbone 方面,我尝试使用 Collections 来获取带有 url '/allergens' 的过敏原,但根据我的 Rails 路由(路由'/allergens' 不存在),这被拒绝了。所以,我resources :allergens在我的嵌套路由下添加了一个独立的路由。这为 Backbone 创建了一条可识别的路线,但我的 Rails allergens_controller.rb 仍然存在问题:

因为没有 id 就无法找到 @ingredient。我尝试过使用 Backbone.sync 和 $.get,但它们仍然需要一个 url,它最终会通过 rails 控制器。如何使用 Backbone 只查询数据库中的单个表,而不受 Rails 或 url 的任何干扰?非常感谢你的帮助!

0 投票
1 回答
3867 浏览

ruby-on-rails - Form_For 未定义的方法路径

我正在尝试嵌套资源:

我的路线:

我能够获得用于对话的回复表单,但现在我增加了获取评论以处理回复的额外复杂性。

整个表格都在对话显示路径下。

上面的回复表单可以正常工作并且没有错误,下面的评论表单会出错:

未定义的方法“reply_comments_path”

这是我的对话控制器,这是我认为问题所在:

但是,其他人建议这样做:

但它只是以一个路由错误结束:

当我尝试制作新表单时,我总是会遇到这个未定义的方法路径错误,而且我总是设法忘记我做错了什么。答案似乎从来都不是路线。

编辑:

在控制器的创建部分下,我有:

我不知道为什么 @reply = @conversation.replies.build 会破坏显示现有回复的能力。我收到一条错误消息,说它无法将 nil 转换为数字,并且看不到 reply.created_at 或 reply.content。无论是什么原因,这都可能是我为什么会遇到这个问题的线索。但是,在我正在使用的回复控制器中

编辑:

补充一下,Stackoverflow 的功能与我在这里想要实现的非常相似,只是您可以对问题和答案发表评论。

0 投票
1 回答
35 浏览

ruby-on-rails - Rails 3 中的路由错误

我的视图(index.html.erb)代码中有以下内容:

目标是让每个项目的概要显示在墓碑 DIV 中,并使整个 DIV 充当项目详细信息页面 (show.html.erb) 的链接。

我的控制器具有以下内容:

并且路线具有以下内容:

@project指向项目 (index.html.erb) 页面,而<%= link_to %>不是控制器定义的项目详细信息页面 (show.html.erb)。我只能猜测 ID 参数没有被传递,但我不知道为什么。

0 投票
1 回答
947 浏览

ruby-on-rails - 嵌套路由且无路由匹配

我有三个资源-users和。我只是嵌套在下面并相应地更新了我的链接,但是我从 rspec 收到两个错误,这对我来说完全是个谜。在我嵌套路线之前一切正常。listsitemslistsusers

我是 Rails 的新手,非常感谢任何帮助!

路线.rb

用户.rb

列表.rb

项目.rb

更新

user_pages_spec.rb

更新 2

users_controller.rb

0 投票
1 回答
428 浏览

jquery - 使用 ajax 的 Rails 嵌套路由

假设我有一个这样的 URL:

但是我正在通过 :remote => true 链接将阶段#show 操作加载到我的项目#show 视图中的 div 中。

我希望用户能够访问http://domain.com/projects/14/phases/30并让 projects#show 视图渲染并将阶段/30 的视图自动加载到指定的 div 中。

我只需要朝着正确的方向轻推。我在网上找不到有关此问题的任何信息。

谢谢!