首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >render 'contribute‘与render :action => 'contribute’同义

render 'contribute‘与render :action => 'contribute’同义
EN

Stack Overflow用户
提问于 2009-06-08 20:49:32
回答 1查看 135关注 0票数 3

这两种形式的“渲染”有相同的效果吗?

代码语言:javascript
复制
render 'contribute'
render :action => 'contribute'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-06-08 21:46:12

简而言之:是的,它们是一样的。但是,有时传递字符串会导致调用render :filerender :template

Here's the API docs for the render function

如果我们向下滚动并点击“Show Source”,我们可以看到它在幕后做了什么。

注意从第872行开始的代码块:

代码语言:javascript
复制
872:         elsif options.is_a?(String) || options.is_a?(Symbol)
873:           case options.to_s.index('/')
874:           when 0
875:             extra_options[:file] = options
876:           when nil
877:             extra_options[:action] = options
878:           else
879:             extra_options[:template] = options
880:           end

通过查看这段代码,我们可以确定它是在试图变得智能。

如果字符串以/开头( when 0情况),则它将调用render :file

  • If the string根本不包含/,( when nil情况),然后它将调用render :template

string在字符串的中间或结尾包含/ (然后是else情况),然后它将调用render :action

  • If

希望这能令人满意地回答您的问题:-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/966939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档