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

chenge · December 06, 2012 · Last by nightire replied at December 06, 2012 · 2335 hits

在 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 方法的。

You need to Sign in before reply, if you don't have an account, please Sign up first.