Ruby on rails开发从头来(windows)(七)-创建在线购物页面(修正原版错误)

上一篇随笔中,我们为Products创建了一个维护用的列表页面,效果如图:

 

这次我们使用上面维护的Products列表来创建一个最终用户使用的购物页面。

 

1.       创建控制器(Controller),命名为store,我们通过命令行来创建它:

depot> ruby script/generate controller Store index

打开...rails_apps/depot/app/controllers目录下的store_controller.rb文件,向其中添加代码:

def index

@products = Product.salable_items

end

当然,我们还需要给Product定义salable_items方法,打开rails_apps/depot/app/models目录下的product.rb文件,添加代码:

def self.salable_items

find(:all,

:conditions => "date_available <= now()",

:order => "date_available desc")

end

 

2.       创建控制层,在rails_apps/depot/app/views/layouts目录下,创建一个store.rhtml文件,其内容如下:

<html>

    <head>

            <title>Pragprog Books Online Store</title>

            <%= stylesheet_link_tag "depot", :media => "all" %>

    </head>

    <body>

            <div id="banner">

                    <img src="http://images/logo.png"/> ||

                    <%= @page_title || "Pragmatic Bookshelf" %>

            </div>

            <div id="columns">

                    <div id="side">

                            <a href="http://www....">Home</a><br />

                            <a href="http://www..../faq">Questions</a><br />

                            <a href="http://www..../news">News</a><br />

                            <a href="http://www..../contact">Contact</a><br />

                    </div>

                    <div id="main">

                            <%= @content_for_layout %>
                    <div>
                    </div>
     </body>
</html> 

  

3. 创建表示层,在rails_apps/depot/app/views/store目录下,创建一个index.rhtml文件,修改其内容如下:

<% for product in @products -%>                                                

<div class="catalogentry">

<img src="<%= product.image_url %>"/>

<h3><%= h(product.title) %></h3>

<%= product.description %>

<span class="catalogprice"><%= sprintf("$%0.2f", product.price) %></span>

<%= link_to 'Add to Cart',

{:action => 'add_to_cart', :id => product },

:class => 'addtocart' %><br/>

</div>

<div class="separator">&nbsp;</div>

<% end %>

<%= link_to "Show my cart", :action => "display_cart" %>

 

 

 

可以看到,在index.rhtml中,使用了css样式,css样式的文件名字叫depot

<%= stylesheet_link_tag "depot", :media => "all" %>

我们可以在rails_apps/depot/public/stylesheets目录下创建一个depot.css文件来定义我们的样式。

好了,最终的表示结果应该是这样:http://127.0.0.1:3000/store

 


这时,可以看到画面上有一个
AddCart链接,下一篇我们在此基础上添加一个购物车(cart)应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值