第八章 商品目录显示
收获:
1/config/routes.rb文件加入如下代码,可指定根网址:
1)#You can have the root of your site routed with "root"
# just rememberto delete public/index.html.
# root :to =>'welcome#index'
root :to =>'store#index', :as => 'store'
2)$rmpublic/index.html
2/以字母顺序显示清单
1)models/products.rb文件添加default_scope方法,默认范围函数scopes会作用该模型的所有查询,代码如下:
class Product <ActiveRecord::Base
attr_accessible:description, :image_url, :price,:title
default_scope:order => 'title'
...
end
2)store/index.html.erb(视图路径名称来自控制器名store,及其方法名index,文件扩展名.html.erb部分表示,使用ERb模板来产生HTML结果)
<% @products.each do |product| %>
<div class="entry">
<%= image_tag(product.image_url)%>#image_tag帮助函数使其参数为图像源,生成HTML标签<img>
<h3><%= product.title %></h3>
<%= sanitize(product.description)%>#sanitize允许安全地添加HTML风格代码,但存在安全漏洞
<div class="price_line">
<span class="price"><%=number_to_currency(product.price) %></span>
</div>
</div>
<% end %>
3)application.html.erb在没有其他页面布局的情况下,所有控制器的视图都将使用这个布局
<div id="main">
<%= yield %>
</div>
#调用运行方法时,rails会自动替换页面相关的内容,即由该请求调用的视图所生成的内容。