问题标签 [nested-resources]

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 回答
1501 浏览

ruby-on-rails-3 - 带有嵌套资源的 Rails form_for:“无路由匹配”

我的routes.rb文件中有以下嵌套资源。内部资源指定控制器名称。

在视图中BatchesTags#new,我正在尝试构建一个表单:

尝试加载此页面 ( /sets/1/tags/new) 会给我一个 ActionController::RoutingError 消息:

没有路线匹配 {:action=>"show", :controller=>"batches_tags"}

但是当我运行时$ rake routes,它清楚地表明这条路线确实存在:

有谁知道如何解决这个错误?

编辑:

在 for 的视图中Batches#show,我使用了相同的batch_tag_path功能,并且效果很好:

0 投票
1 回答
159 浏览

ruby-on-rails-3 - 如何设置部分嵌套的资源路由?

在我的 Rails 网站上,用户发布Listings他们想要出售的商品。其他用户可以浏览这些列表并单击链接以联系卖家,这应该会创建一个MessageThread

MessageThreads永远不会在 a 的上下文之外创建Listing,因此我嵌套了它们资源丰富的路线。但是,它们不需要在创建后查看/编辑上下文。只有and操作Listing才需要。我是这样设置的:newcreate

我似乎无法弄清楚...的操作视图中的form_for语法,但那不起作用。这是设置此对象的正确方法吗?我应该避免使用资源丰富的路由,还是将列表 ID 作为 URL 中的参数传递,而不是嵌套路由?还是总是引用列表下方的 message_thread?newMessageThreadsControllerform_for @message_thread

0 投票
1 回答
1501 浏览

ruby-on-rails - Ruby on Rails form_for 导致路径错误

在我的 Ruby on Rails 代码中,我有以下用于任务的 edit.html.erb 文件:

然后我在同一目录中有一个 _form 模板,代码如下:

问题是我在尝试导航到编辑页面时遇到错误。错误说“未定义的 task_path”,所以据我所知,Rails 没有正确识别我的任务的路径。

程序的结构方式是我有一个包含许多任务的列表,每个任务都有一个列表。路由文件以这种方式声明结构:

如何让 form_for 识别我正在尝试在 /lists/:list_id/tasks/:task_id/edit 编辑任务?

感谢您的帮助!

0 投票
3 回答
1210 浏览

ruby-on-rails - 具有复合主键(id + parent_id)的 Rails 3.1 嵌套资源

假设我需要嵌套在 routes.rb 中的两个资源,如下所示:

按照惯例, comments.id将是评论主键comments.post_id将是外键

我需要主键复合键 [comments.post_id, comments.id]

这样我就可以对每个具有 id == 1 的不同帖子的第一条评论,对每个具有 id == 2 的不同帖子的第二条评论等等......

当然,我还需要禁用所有引用评论(子资源)的路由,而不是引用它的帖子(父资源)。

这只是一个例子,我的实际项目与博客无关(我对这个问题的处理方式不同),我想知道是否有办法为嵌套资源实现这种行为以实现兼容性使用遗留数据库。

谢谢你。

0 投票
0 回答
580 浏览

polymorphic-associations - Rails 3 嵌套资源、多态关联和表单

手头的问题涉及关键主题:

  1. 嵌套资源
  2. 多态关联
  3. 形式

我们假设我们有照片和文章,两者都有评论。这创建了我们的多态关联。

我们添加和查看评论的视图在照片和文章之间共享。

而且,我们的资源照片和文章嵌套在其他资源中,如下所示:

现在您可以在上面的表格中看到,我们有我们的多态资源,但我们需要我们的父资源和祖父资源,具体取决于我们的请求路径。如果硬编码(永远不会这样做),我们将在 form_for 中有这两个之一:

或者

假设我们可以在许多文章和 Stackoverflow 答案中找到的 CommentsController 中找到父级,如下所示:

我们如何才能找到祖父母并将所有这些放入 form_for 助手中?

非常感谢!

0 投票
2 回答
2171 浏览

ruby-on-rails - 嵌套资源上路由不正确的 Rails Destroy 方法

我有一个带有嵌套任务的列表对象。我创建了一个显示单个任务的页面,以及一个允许用户编辑单个任务的页面。我现在想添加从任务编辑页面上的列表中删除任务的功能。使用以下代码

产量

这段代码在 show.html.erb 页面上,我在其中调用 @task 来显示存储在任务中的所有数据,所以我相信这个问题可能是某种路由错误,但我似乎无法弄清楚出去。

相关的控制器方法是

我认为使用 delete 方法,我提供的 @task 只会通过 params 发送到 destroy 方法,但这个错误似乎表明这不是它的工作原理。那么如何正确销毁 Rails 中的嵌套资源呢?

编辑: 这是带有嵌套资源的路由文件:

谢谢您的帮助!

0 投票
2 回答
376 浏览

ruby-on-rails-3.1 - 使用嵌套资源调用“新”方法的路由错误

我有两个嵌套资源:

在 routes.rb 我有

创建新位置的代码是

当我尝试创建新位置时,出现以下错误

路由错误

没有路线匹配 {:action=>"show", :controller=>"locations", :customer_id=>#, :id=>#}

为什么调用 :action=>"show" 而不是 "new"?

耙路线输出是

locations_controller.rb 中新操作的控制器代码是

我不明白这个错误,我还有另外两个可以正常工作的嵌套资源,检查了所有代码,它看起来完全一样......“位置”是否有可能是保留字,或者是否有遗漏/错误?

0 投票
1 回答
429 浏览

ruby-on-rails-3 - 使用 RSpec 测试嵌套资源控制器 - 计数不会改变 1

我有嵌套资源:

并遵循 RSpec 控制器:asset_actions_controller_spec.rb

运行 Spec 时出现以下错误:

我找不到这次失败的原因。有什么建议么?

注释: Rails 3.1.3、Ruby 1.9.3p5、RSpec 2.8.0

0 投票
1 回答
1120 浏览

ruby-on-rails - Rails 路由为嵌套资源中的新操作生成 Post 请求

我有以下嵌套资源:

在我的列表/show.html.haml 中,我有

现在,当我单击按钮时,rails 会生成一个 POST 请求,因此会出现错误:

如果我刷新(GET 请求),则页面正确显示。

我相信这种不正确的路由只有在我添加了两个额外的操作时才会发生:接受和拒绝,这恰好是 POST 操作。

这是 Rails 中的错误,还是我的错?我应该如何防止这个错误?

谢谢你。

0 投票
1 回答
1011 浏览

ruby-on-rails - CanCan 深度嵌套资源

我有一个routes.rb看起来像这样的:

ability.rb我的作品中有这样的东西,

但是更深的嵌套似乎是浅嵌套的问题。

关于如何让 CanCan 处理与上一个示例一样深的嵌套的任何想法?