问题描述
|
我是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]
在这里解决一些假设,但希望这会有所帮助。