Rails rails 应用中的一小段代码 (解决)

chenge · 2012年12月06日 · 最后由 nightire 回复于 2012年12月06日 · 2334 次阅读

在 application.erb:

<%= yield %>

请教下这段是什么意思,yield 会对应到什么文件呢?

就是你 app/view 在输出的时候都要经过这个模版啊,yield 就是其他 view 进来的位置,书上不是有写么。

application.html.erb 是一个全局模板,它在整个 app 的每一个网页都会被调用。

比方说你访问 http://abc.com/users/1 这个 path,标准路由是找 /app/views/users/show.html.erb 这个模板,但实际上 rails 最终返回给浏览器的是 /app/views/layouts/application.html.erb 和 /app/views/users/show.html.erb 这两个文件 (当然还要编译过)。

yield 是告诉 application.html.erb 在什么位置把实际路由请求的模板插到这个全局模板里面,以上例而言,yield 的位置就是 show.html.erb 的位置。

明白了,确实是 show。我猜测是 route 默认对应 show 吧。

#3 楼 @chenge 晕,route 没默认对应什么,这取决于你发出请求的 url。你楼上举得例子的 url 就是访问 users controller 里的 show 方法的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号