论坛首页 编程语言技术论坛

render和redirect的理解是否正确?

浏览 8930 次
精华帖 (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这段代码。

0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics