Ruby on rails 重定向到,控制器和模型之间的关系
我生成了一个scaffold,它生成了一个看起来像这样的控制器(我去掉了一些代码,但仍然有效) 这会导致它重定向到/posts/id,这一切都可以正常工作 但我不明白这是怎么回事Ruby on rails 重定向到,控制器和模型之间的关系,ruby-on-rails,Ruby On Rails,我生成了一个scaffold,它生成了一个看起来像这样的控制器(我去掉了一些代码,但仍然有效) 这会导致它重定向到/posts/id,这一切都可以正常工作 但我不明白这是怎么回事@post是一个模型类的实例,那么它如何知道应该重定向到哪个控制器和操作?我看不到任何地方明确定义了这种关系(在Post模型和PostsController之间) 我曾经尝试过在没有搭建脚手架的情况下从头开始复制,但我遇到了一些错误,即无法找到与我定义的模型关联的url\u。即使我在routes.rb中使用资源定义路由,
@post
是一个模型类的实例,那么它如何知道应该重定向到哪个控制器和操作?我看不到任何地方明确定义了这种关系(在Post
模型和PostsController
之间)
我曾经尝试过在没有搭建脚手架的情况下从头开始复制,但我遇到了一些错误,即无法找到与我定义的模型关联的
url\u。即使我在routes.rb
中使用资源定义路由,它仍然有效的原因是因为在控制器的后期创建方法中仍然存在,这在我看来很正常,而且在routes.rb文件中,您可能有一些类似于resources:posts的内容,这些内容涵盖了控制器的所有操作,例如posts/1/等。另一件事是确保在编辑/更改routes.eb文件时重新启动服务器。希望这是足够清楚的理解 当您调用redirect_to
时,它通过调用方法计算路径
并到达中的else
语句
并为
方法调用url\u
并调用polymorphic\u path
(和polymorphic\u url
)
此处将\u转换为\u模型(记录)
在哪里
计算屈折变化
你会,它是:单数
以后你会的
还有电话。
您将获得['post']
在你的路线是['post',:url]
放置并与post\u路径(@post)
如果我在某个地方错了,我很抱歉。我希望这能让你理解重定向到@post
你能发布你的路由吗.rb
或者rake路由的输出
?Wowww再精确不过了:)
def create
@post = Post.new(params[:post])
if @post.save
redirect_to @post
end
end