![]() persia 0.709% disconnected | 登录后回复主题 | 跳到回复(5)
|
3 - 2007-10-17 13:15
bd7lx 深圳Rails里
1. render 和 redirect 只能用一个
2. render 可以翻译成提交,一般的电脑语言翻译成渲染,Rails里render可以自动方式和手动两种
3. 动作控制器通过render方法发送内容给用户,大多数都是提交一个“模板”。视图可以看懂erb的模板,显示出@变量(实例变量)----这种render提交和渲染(把模板呈现为用户看到的视图)过程是自动的,不用你命令render去执行
简单说就是controller中方法里定义的@foo变量,view中rhtml可以用<%=@foo%>显示出来
4. 动作”的结果是提交不同的“模板”时,手工使用render方法
看看书上的介绍
5. Render的方法可以提交不同的内容
* render(:text=>string) 直接render出文本
* render(:inline=>string,[:type=>"rhtml"|"rxml"])
把传入的string当成模板处理, 相当于rhtml的内容
* render(:action=>action_name) 直接调用某个action的模板,
相当于forward到一个view
* render(:file=>path;[:use_full_path=>true|false]) 使用某个模板文件
render, 当use_full_path打开时可以传入相对路径
* render(:template=>name) 使用模板名render ,
例子如下 render(:template => "blog/short_list")
# 自动使用/app/views/blog/short_list.rhtml(rxml)
* render(
artial=>name) :partial
* render(:nothing=>true) 什么也不输出,包括layout
* render() 默认的的render, 相当于render(:action=>self)
而redirect 是引导重新定向
* redirect_to(:action=>'xxx') 使用语法和url_for一样(底层用url_for)
* redirect_to("/localpath")
* redirect_to("http://url")
1. render 和 redirect 只能用一个
2. render 可以翻译成提交,一般的电脑语言翻译成渲染,Rails里render可以自动方式和手动两种
3. 动作控制器通过render方法发送内容给用户,大多数都是提交一个“模板”。视图可以看懂erb的模板,显示出@变量(实例变量)----这种render提交和渲染(把模板呈现为用户看到的视图)过程是自动的,不用你命令render去执行
简单说就是controller中方法里定义的@foo变量,view中rhtml可以用<%=@foo%>显示出来
4. 动作”的结果是提交不同的“模板”时,手工使用render方法
看看书上的介绍
def search
@results =Search.find(params[:query])
case @results
when 0 then render :action=> "no_results"
when 1 then render :action=> "show"
when 2..10 then render :action=> "show_many"
end
end
@results =Search.find(params[:query])
case @results
when 0 then render :action=> "no_results"
when 1 then render :action=> "show"
when 2..10 then render :action=> "show_many"
end
end
5. Render的方法可以提交不同的内容
* render(:text=>string) 直接render出文本
* render(:inline=>string,[:type=>"rhtml"|"rxml"])
把传入的string当成模板处理, 相当于rhtml的内容
* render(:action=>action_name) 直接调用某个action的模板,
相当于forward到一个view
* render(:file=>path;[:use_full_path=>true|false]) 使用某个模板文件
render, 当use_full_path打开时可以传入相对路径
* render(:template=>name) 使用模板名render ,
例子如下 render(:template => "blog/short_list")
# 自动使用/app/views/blog/short_list.rhtml(rxml)
* render(
* render(:nothing=>true) 什么也不输出,包括layout
* render() 默认的的render, 相当于render(:action=>self)
而redirect 是引导重新定向
* redirect_to(:action=>'xxx') 使用语法和url_for一样(底层用url_for)
* redirect_to("/localpath")
* redirect_to("http://url")
4 - 8-20 19:03
agate 上海我不知道我可不可以这么理解~(我是这么理解的)
一般来说 controller 中的 action 有对应一个 rhtml 视图来显示
直接访问(使用 post or get 方式)或者 redirect_to 会自动找到这个对应的视图显示。
使用 render :action => 'xxx' 可以指定视图进行显示 render :action=>'list' 就是找 list.rhtml 来显示了~~~
一般来说 controller 中的 action 有对应一个 rhtml 视图来显示
直接访问(使用 post or get 方式)或者 redirect_to 会自动找到这个对应的视图显示。
使用 render :action => 'xxx' 可以指定视图进行显示 render :action=>'list' 就是找 list.rhtml 来显示了~~~
5 - 8-24 11:36
ashchan 杭州redirect_to是发起一个302转向,所以会引起一个完全的request。
render :action相当于是使用:action指定的视图模板,但不会去执行目标action。如render :action => 'new',会在当前action的执行环境中“渲染” new 视图,但不会去执行 new 这个 action。
render :action相当于是使用:action指定的视图模板,但不会去执行目标action。如render :action => 'new',会在当前action的执行环境中“渲染” new 视图,但不会去执行 new 这个 action。
回到顶部 | Ask | 返回 ChinaonRails 首页 | 注册 | 找回密码













