- 浏览: 34413 次
- 性别:
- 来自: 杭州
最新评论
-
black_star:
夜鸣猪 写道赞啊
有个截图更好
开始没想到,忙着找包了。 ...
ruby-debug windows调试 -
夜鸣猪:
赞啊 有个截图更好
ruby-debug windows调试 -
black_star:
呵呵,笨鸟多飞飞
ruby on rails(7)-- 创建一个页面模版 -
supercode:
楼主真勤奋
ruby on rails(7)-- 创建一个页面模版 -
supercode:
已经有了
alige webdevelopment with ruby on rails 第三版英文
文章列表
第三版英文
- 2009-11-26 14:53
- 浏览 1097
- 评论(1)
订单处理,首先要有一个订单的详细列表(包括数量,价格啥的)和一个关于个人的一些信息的一个表。因此我们创建两个模型,line_item(列表项),order(列表),然后编辑如下
/db/migrate xxx_create_order xxx_line_item
class CreateOrders < ActiveRecord::Migration
def self.up
create_table :orders do |t|
t.string :name
t.text :address
t.string :email
t ...
本打算调试下代码,结果安装软件装了半天。主要是我的环境是xp。用的是Installrails。装软件多有不便啊。
参考猪哥的方法http://hlee.iteye.com/blog/361405,本以为很轻松,还是mac好,可以自动下载关联的文件,不需要这么辛苦的下载软件了,费了我N多时间。上午本来可以搞定了,结果下午才弄好。
你需要装的软件。
1.ruby-debug
2.ruby-debug-base 注意是windows版本的,就是有ms的那个
3.ruby-debug-ide 注意版本,不要弄的太高,我开始弄的太高,装不上,后来弄了个低版本的
4, ...
效率不高啊, ,看来还是要提高效率。要专注,要心无房屋。
这节主要是用helper隐藏作侧边栏的购物车,如果没有东西时,隐藏购物车,有东西时渐进显示,突然显示出来,会吓坏小朋友的,所以我们要慢慢的显示出来。
判断购物车首先不为空 <%unless @cart.items.emtpy? ... end%>
给购物车加上渐进效果,同样是用Ajax。
在view/store/add_to_cart.js.rjs 加一下内容
page[:cart].visual_effect :blind_down if @cart.total_items == 1
...
高亮价格变化。首先保存我们当前的购物车。在models/cart.rb编辑add_product.
def add_product(product)
current_item = @items.find{|item| item.product == product}
if current_item
current_item.increment_quantity
else
urrent_item = CartItem.new(product)
@items << current_item
end
current_ite ...
- 2009-12-07 23:23
- 浏览 909
- 评论(0)
火热的Ajax啊,全世界的程序员都在讨论它(c,c++请飘过),终于我要开始学习啦。
首先是代码重用,rails为了使逻辑和表现分开,采取了一些列的方法,其中之一是,不要把逻辑写在表现页面上。因为,我们要分离拉。局部的代码,就采用partical。如<%= render(:partial =>"cart_item", :collection => cart.items)%>,:partial 的参数所对应的页面就是在参数名前加_.因此对应的页面为_cart_item.html.erb.
修改add_to_cart.html.erb
...
- 2009-12-05 16:24
- 浏览 1212
- 评论(0)
一张终于又要过去了,这是8的最后一个内容了。终于熬到第九章了要。看书,nnd慢啊。robbin说他们三个人一个月就搞定了整个je,佩服佩服。我一个月这书都没看完,继续努力,继续努力。
这节主要是错误处理,当遇到错误的时候一般做三个事情,记录错误,给出提示信息,然后重新跳到某个指定页面。
rails用rescue表示遇到的某个错误。内置的logger记录错误,每个controller,人人有份在log/development.log下课查看。用flash在网页显示需要显示的错误.redirt_to :action =>xx重定向。在store_controller下修改如下代 ...
- 2009-12-02 17:34
- 浏览 1185
- 评论(0)
统计数目的数量,重新创建一个类。CartItem。
class CartItem
attr_reader :product,:quantit
def initialize(product)
@product = product
@quantity = 1
end
def increment_quantity
@quantity += 1
end
def title
@product.title end
def price
@product.price * @quantity
end
end
...
- 2009-12-02 15:43
- 浏览 938
- 评论(0)
大难不死,必有后福。最近经历了一点小车祸,还好,只是腿被撞了下。信春哥,得永生。
为了将货物保留到购物车,我们必须要用cookie or session。cookie将信息保留到浏览器,session服务器。rails里面的先将信息用cookie 收集,然后服务器根据cookie name找到对应的session id 。然后处理。session的存储可以由文件,数据库,其他。部署又是一节内容。这里用数据库。rails会保留一张session的表
首先,创建session表 rake db:session:create 然后迁移 rake db:migrate
接下来修改ap ...
- 2009-12-01 19:20
- 浏览 990
- 评论(0)
1.除了类和模型用首字符大写以外,其余的都用小写+下划线模式.class RobyOnRails
2.变量:小+下滑 product_price.
3.数据库。表名,小写+下划+s table price_of_products
4.文件名,小写+下划。
controller也是复数啊,书上说的不对啊
如果命名规范,rails会自动查找
如果有一个类叫做LineLtem,会存在一个表叫line_items,会有一个contoller叫 line_item.rb
这样即使没有用require引用,rails也会自动匹配
创建一个页面模版,你可以很轻松的往里面填内容,而如果改动样式时,只要改动一个文件即可。rails 会在app/view/layout下面根据controller默认选中名字一样的layout。而我们的controller为store,因此rails会默认选中layout下的store.html.erb文件。因此,最简单的就是手动创建store.html.erb。这样,就能默认载入了。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w ...
- 2009-11-26 21:54
- 浏览 1470
- 评论(2)
首先创建一个控制器 ruby script/generate controller store index 会产生一个store_controller控制器及index方法。同时在view/store/index.html.erb index action是rails默认的action
我们的目的是创建一个目录列表。首先考虑在哪里创建。在mvc结构中。v第一个被排除。那么就是m,c。m与数据库交互,c控制。因此c最合适。书上说这是为了产生抽象方法。
class StoreController < ApplicationController
def index
...
- 2009-11-24 23:42
- 浏览 1179
- 评论(3)
今天主要是完成depot第一部分的最后一部分。第一步:添加测试数据。用migration 添加
ruby script/generate migration add_test_data
然后编辑db/migrate/003_add_test_data.rb
class AddTestData < ActiveRecord::Migration
def self.up
Product.create(:title => '123',':description' => %{<p>下沙小旅馆</p>},':image_url' ...
- 2009-11-23 23:29
- 浏览 918
- 评论(0)
建好表后,碰到乱码问题。搜了下,发现把数据库和配置编码设为utf8即可。查看yml,encoding 已经utf8了。好,把depot_development设置为utf8。首先查看编码,用phpmyadmin进入。然后命令 show variables like 'character%' 出来的latin1,好用alter database development charset set utf8;(utf-8不行)然后再查看 发现已经为utf-8,然后重启mysql。可是一查,还是回去了,郁闷,乱码问题还是没有解决。
有些解决方法是向app controller加入一段代码,可是我 ...
- 2009-11-22 22:34
- 浏览 1195
- 评论(0)
depot,alige webdevelopment默认项目,我们建立了一个新的表produt,真实数据库里面的表名为products,里面有title,description,image_url字段,还有id字段,这个应该是rails自己加的吧。
同时,在app目录的view,controller,model项目下都多了相对应文件 ,还有db目录。因此,可以直接用http://localhost:3000/products访问。
ps:rake db:migrate 将未迁移的数据库操作对应到数据库
rake db:migrate version=n 退回到第几 ...
- 2009-11-22 17:33
- 浏览 916
- 评论(0)