Rails中的范围问题



我是rails的新手,有范围问题。我有两节课,Post和Story。Post的每个实例都是使用Story show页面上的表单中的数据创建的。Post的参数之一是创建它的Story实例的id。我不知道如何获得这个id。即使我在def show下的控制器中将其定义为@story=Story.find(params[:id]) ,故事也是零的

谢谢!

这实际上取决于您在哪里创建post,以及控制器的路由。我希望它在PostsController中,而不是StoriesController中,因为它并不真正属于后者。

因此,假设您使用的是PostsController,最好的方法(听起来每个帖子都与一个故事相关)是将该控制器嵌套在routes.rb文件中的故事中:

resources :stories do
  resources :posts
end

然后,故事id(如果表单设置正确)在params[:story_id]中可用,创建可能看起来像这样:

story = Story.find params[:story_id]
post  = story.posts.create params[:post]

在这里做一些假设,但希望这会有所帮助。

相关内容

  • 没有找到相关文章

最新更新