Sam*_*ami 31 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2
我感到困惑之间的主要区别(S) link_to,redirect_to并render在轨道上.任何人都可以请解释.
Red*_*VII 32
link_to在您的视图中使用,并为链接生成html代码
<%= link_to "Google", "http://google.com" %>
Run Code Online (Sandbox Code Playgroud)
这将在您的视图中生成以下html
<a href="http://google.com">Google</a>
Run Code Online (Sandbox Code Playgroud)
redirect_to和render在您的控制器中用于回复请求.如果在您添加的控制器中,redirect_to只会将请求重定向到新的URL
redirect_to "http://google.com"
Run Code Online (Sandbox Code Playgroud)
访问您网页的任何人都将被有效地重定向到Google
render可以在很多方面使用,但它主要用于渲染你的html视图.
render "article/show"
Run Code Online (Sandbox Code Playgroud)
这将呈现视图"app/views/article/show.html.erb"
以下链接将更详细地解释redirect_to和render方法 http://guides.rubyonrails.org/layouts_and_rendering.html
sar*_*gas 10
从文档:
关于渲染视图与重定向请求
...render告诉Rails在构造响应时使用哪个视图(或其他资源).redirect_to方法完全不同:它告诉浏览器发送不同URL的新请求.
关于渲染视图
...render:action不会在目标操作中运行任何代码...
关于重定向请求
...您的代码停止运行并等待浏览器的新请求.只是通过发送回HTTP 302状态代码,您已经告诉浏览器接下来应该做什么请求.
基本上:
link_to是一个生成通常在视图中使用的URL的辅助方法(.html.erb文件)
渲染告诉控制器渲染视图而不将任何数据(例如,从表单)传递到下一个控制器操作.
redirect_to执行302页面重定向,将数据(例如,从表单)传递到Web应用程序上的控制器操作或外部应用程序(例如:google,facebook,您喜欢的Web文章等)
| 归档时间: |
|
| 查看次数: |
21019 次 |
| 最近记录: |