我在Rails v2.3应用程序中看到了一些代码.
在layout/car_general.html.erb(这个视图由cars_controller中的方法调用),我看到了代码:
<body>
<%= yield %>
<%= javascript_include_tag 'jquery-1.4.2.min' %>
<% javascript_tag do %>
<%= yield :jstemplates %>
var some_car = new Object;
<%= yield :some_car %>
<% end -%>
</body>
Run Code Online (Sandbox Code Playgroud)
要问两个问题:
<body>.<%= yield :jstemplates %>和在视图中包含js代码
<%= yield :some_car %>,它是指向一个视图还是只是为了显示它的值some_car?我试图理解html.erb文件是如何工作的,我对render和yield命令有点困惑,因为它们似乎都是通过替换其他html.erb文件中的代码来使文件管理器更清晰和更简单的方法.有人可以向我解释渲染和产量之间的区别吗?
我想传递一个包含原点的局部变量来到特定页面,这个变量只包含一个带有值的符号.
当我使用这个代码时它工作得很完美,原始变量可以在partial中访问:
render :partial => "products", :collection => @products, :locals => {:origin => :gallery}
Run Code Online (Sandbox Code Playgroud)
但是,当我使用此代码时,原点未设置且无法在部分中访问:
render @products, :locals => {:origin => :gallery}
Run Code Online (Sandbox Code Playgroud)
这有什么区别?第二行代码是不是像第一行一样呈现部分?