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