Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何从用户处获取所有帖子_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何从用户处获取所有帖子

Ruby on rails 如何从用户处获取所有帖子,ruby-on-rails,Ruby On Rails,在我的rails应用程序中,我有一个用户和一个Post-scaffold。我想获得所有与用户相关的帖子。例如,我希望能够做到以下几点: 本地主机:3000/users/1/posts 它应该给我所有用户_id=1的帖子。我知道如何通过rails控制台为特定用户获取所有帖子。我只是想知道如何才能完成上面的例子。我是否必须在用户控制器中添加另一个方法 无需添加新操作即可完成。像这样: class PostsController < ApplicationController def ind

在我的rails应用程序中,我有一个用户和一个Post-scaffold。我想获得所有与用户相关的帖子。例如,我希望能够做到以下几点:

本地主机:3000/users/1/posts


它应该给我所有用户_id=1的帖子。我知道如何通过rails控制台为特定用户获取所有帖子。我只是想知道如何才能完成上面的例子。我是否必须在用户控制器中添加另一个方法

无需添加新操作即可完成。像这样:

class PostsController < ApplicationController
  def index
    @user = User.find(params[:user_id])
    @posts = @user.posts
  end
end
class PostsController
您无需添加新操作即可完成此操作。像这样:

class PostsController < ApplicationController
  def index
    @user = User.find(params[:user_id])
    @posts = @user.posts
  end
end
class PostsController
我对一个可能有帮助的相关问题写了一个冗长的答案:


我写了一个很长的答案,回答了一个可能有用的相关问题:


另一个一行示例如下,将其添加到索引中

@posts = User.find(params[:user_id]).posts

另一个单行示例如下,将其添加到索引中

@posts = User.find(params[:user_id]).posts

我收到以下错误:没有与[GET]“/users/1/posts”匹配的路由。我必须将此映射添加到routes.rb吗?您使用的是嵌套路由,因此我希望您希望为特定用户提供帖子列表,因此您必须将此列表放入PostsController并索引操作。啊哈,好的,是的,您必须在routes中定义用户资源的帖子资源。rb我收到此错误:没有与之匹配的路由[GET]“/users/1/posts”。我必须将此映射添加到routes.rb吗?您使用的是嵌套路由,因此我希望您希望为特定用户提供帖子列表,因此您必须将其提交给PostsController并索引操作。啊哈,好的,是的,您必须在routes.rb中定义用户资源的帖子资源