Rails中的范围问题

问题描述

| 我是Rails的新手,对范围有疑问。我有两个班,邮政和故事。每个Post实例都是使用Story Show页面上的表单中的数据创建的。 Post的参数之一是从其创建Story实例的ID。我不知道如何获取此ID。即使我在控制器中的“ 0”下将其定义为“ 1”,@ story也为零 谢谢!     

解决方法

        这实际上取决于您在哪里创建帖子,以及控制器的路由。我希望这是在PostsController中,而不是StoriesController中-因为它实际上并不属于后者。 因此,假设您使用的是PostsController,最好的方法(听上去每个帖子都与一个Story关联)是让此控制器嵌套在您的
routes.rb
文件中的故事中:
resources :stories do
  resources :posts
end
然后,故事ID(假设表单已正确设置)在
params[:story_id]
中可用-创作可能看起来像这样:
story = Story.find params[:story_id]
post  = story.posts.create params[:post]
在这里解决一些假设,但希望这会有所帮助。