精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-04-25
jerry 写道 hozaka 写道 对不起,我没表述清楚。
我的意思是并不是说 render 相当与一个 request。举个例子,比如当前请求有一个参数 a=1,当前 action a 的结果如果是 render 方法渲染的一个页面,那么这个 action a 内、对应的页面模板内都可以通过 params[:a] 得到这个参数;如果 action a 的结果是 redirect_to :action => 'b',那么就是告诉浏览器重新发一个请求到 action b,如果没有另外传递参数,那么 action b 是得不到 a=1 这个参数的。 至于在 action a 内执行 render :action => 'b',和 redirect_to 也有区别。前者只是让 rails 渲染 action b 对应的页面模板而已,并不会执行 action b 内的代码,而 redirect_to 因为是新的请求了,所以 action b 内的代码会在另一个请求里被执行。 前者只是让 rails 渲染 action b 对应的页面模板而已,并不会执行 action b 内的代码???? 这句话不太理解,呵呵.为什么会不执行里面的代码呢?不执行代码渲染什么? class TestController < ApplicationController def a puts 'a' @xx = 1 render :action=>'b' end def b @xx = 2 puts 'b' end end 访问 /test/a ,执行完puts 'a';@xx=1后,渲染 b.rhtml。 不会执行 puts 'b';@xx=2这段代码。 |
|
返回顶楼 | |