zllicho 2007-11-3 20:29
【web开发敏捷之道--应用Rails进行web开发】第2版
[font=Impact][size=5]you can say anything about this book..[/size][/font]
zllicho 2007-11-3 21:59
【读书笔记】1——2007-11-01 13:15:24
[color=Red]说明:我的开发环境是winxp,ruby版本1.8.6,rails 版本 1.2.5,数据库使用的是mysql- 5.0.22-win32[/color]
##这里必须要记住的是这三个CMD命令
1.e:\rails\work>rails demo #create一个rails应用
2.e:\rails\work\demo>ruby script/server #启动这个rails应用
3.e:\rails\work\demo>ruby script/generate controller Say #新建一个控制器,这个控制器的脚本是用ruby写的,*,rb
在控制器的脚本中写一个action,(hello),理解一下controller和view的关系,controller r invokes view
然后在view里面就生成了一个hello.rhtml。在hello.rhtml写个跟html一样的语句,hello world ~ :)
-----
链接:
再创建goodbye的action,写点goodbye.rhml代码
在hello.rhtml里贴个句子
<p>Time to say<%=link_to "Goodbye!", :action =>"goodbye" %></p>
<%= ...%>写ruby的地方。
这样就链接起两个页面
[[i] 本帖最后由 zllicho 于 2007-11-4 21:02 编辑 [/i]]
zllicho 2007-11-3 22:06
【读书笔记】2——2007-11-01 16:32:41
配置mysql并且开始我们的depot之旅
1.安装mysql- 5.0.22-win32下载地址:
[url]http://download.mysql.cn/download_file/zip/5.0/mysql-5.0.22-win32.zip[/url]
修改一下安装路径C:\MySQL,剩下的安装默认安装即可
配置环境变量,添加C:\MySQL\bin;
[color=Red]E:\rails\work>rails depot #创建rails应用depot[/color]---
[color=Red]E:\rails\work\depot>mysqladmin -u root create depot_development #创建数据库[/color]
[color=Red] E:\rails\work\depot>ruby script/generate model product #创建product模型类[/color]出现:
这里着重注意两个文件:
迁移任务 : 001_create_products.rb 和 模型类 :[color=DarkSlateBlue]product[/color].rb
说明一下:迁移任务的名字由几部分组成:描述自己的功能(create_[color=Magenta][color=Purple]products[/color][/color]),加上序列号作为前缀(001),再加上扩展名(.rb)。
打开db/migrate目录下的001_create_products.db,添加代码来创建数据库表!
说明:up()方法用于实施迁移,定义数据库表的代码要写在这里,down()方法负责撤销up()方法的效果,当需要把数据库恢复到前一个版本时就会执行这个方法。 class Create
Products < ActiveRecord::Migration
def self.up
create_table :[color=Indigo]products[/color] do |t|
# t.column :name, :string
[color=Red] t.column :title, :string
t.column :description, :text
t.column :image_url, :string[/color]
def self.down
drop_table :products
end
end
[color=Red]E:\rails\work\depot>rake db:migrate #数据迁移[/color]
products表会被添加到database.yml文件的development
rake怎么知道哪些迁移任务实施过,哪些没有呢?运行迁移任务之后去看看数据库结构,你就会发现schema_info这么一张表,它的作用就是跟踪数据库的版本。
[color=Red] E:\rails\work\depot>ruby script/generate controller admin #创建控制器admin[/color]
------------------------------------
在admin这个控制器中加上脚手架(scaffold)
-------------------------------------
class AdminController < ApplicationController
[color=Red] scaffold :product[/color]
end
------------------------------------
scaffold声明告诉rails:请在运行时生成应用程序代码; :product模型来维护数据。
----------------------------------------
E:\rails\work\depot>ruby script/server #启动rails应用
http://localhost:3000/admin
[[i] 本帖最后由 zllicho 于 2007-11-4 21:07 编辑 [/i]]
zllicho 2007-11-3 23:20
【读书笔记】3——2007-11-02 14:36:40
[color=Red]E:\rails\work\depot>ruby script/generate migration add_price [/color]#新建迁移任务,添加price字段
class AddPrice < ActiveRecord::Migration
def self.up
[color=Red]add_column :products, :price, :decimal, :precision =>8, :scale=>2, :default=>0[/color]
end
def self.down
[color=Red] remove_column :products, :price[/color]
end
end
[color=Red]E:\rails\work\depot>rake db:migrate [/color] #迁移数据
[color=Red]E:\rails\work\depot>ruby script/server [/color] #启动depot
---------------
Validate!模型层中放入验证逻辑
位于app/models/product.rb文件
---------
class Product < ActiveRecord::Base
[color=Red]validates_presence_of :title, :description, :image_URL
validates_numericality_of :price #验证price是否是数字
validates_uniqueness_of :title #验证title字段在表中是否唯一
validates_format_of :image_url, #验证图片格式是否正确
:with => %r{ \.(gif|jpg|png)$}i,
:message =>"must be a URL for a GIF, JPG or PNG image!"
protected #protected,是因为该方法必须在特定的模型上下文中调用,不能在外部随便调用。
def validate #validate()的方法,rails在保存product实例之前会自动调用这个方法,可以用它来检查字段的合法性
errors.add(:price, "should be at least 0.01") if price.nil? || price<0.01#先应该检查一下它是不是nil。如果是nil与0.01进行比较,就会发生一个异常。
end[/color]
end
[color=Red]E:\rails\work\depot>ruby script/generate scaffold product admin [/color] #生成静态的脚手架
。。。
overwrite app/controllers/admin_controller.rb? [Ynaqd] y
force app/controllers/admin_controller.rb
overwrite test/functional/admin_controller_test.rb? [Ynaqd] y
force test/functional/admin_controller_test.rb
。。。
App/views/admin/list.rhtml文件中rails视图生成了当前的货品列表页面。
测试数据:
1.用可控的方式来填充数据,使用迁移任务。
[color=Red]E:\rails\work\depot>ruby script/generate migration add_test_data [/color]
[color=Red]修改003_add_test_data.rb:
(拷贝)[/color]
[color=Red]顺便把图片和depot.css也拷贝到public\image和public\stylesheets目录下![/color]
[color=Red]E:\rails\work\depot>rake db:migrate [/color] #执行数据迁移
引用CSS样式!:
[color=Red]在E:\rails\work\depot\app\views\layouts下有一个admin.rhtml的文件:
[color=Red] <%= stylesheet_link_tag 'scaffold' ,'depot' %>[/color] #添加depot.css[/color]
[color=Red]接下来就是修改/app/views/admin/list.rhtml了![/color]
拷贝一下
现在在浏览器中输入http://localhost:3000/admin/list就可以看到
[[i] 本帖最后由 zllicho 于 2007-11-3 23:26 编辑 [/i]]
zllicho 2007-11-4 08:51
my sql命令
my sql下删除数据库的操作
c:>mysql -u root
mysql>drop database depot_development[color=Red] ;[/color]
drive2me 2007-11-4 09:17
先介绍一下你的Ruby开发平台吧。
因为平台不一样,做法都不相同的。我用Netbeans来做,其中很多命令行的过程都不用了。直接就可以得到结果的。这就是NetBeans的优点。
我们希望你的心得和经验,和告诉我们每个例子的知识点。至于例子,大家手里都有书,可以自己做的。版主是要带领大家提高对所读书的理解和总结,并解答会员遇到的问题。
drive2me 2007-11-4 09:20
[quote]原帖由 [i]zllicho[/i] 于 2007-11-3 21:59 发表 [url=http://ruby-lang.org.cn/forums/redirect.php?goto=findpost&pid=7091&ptid=1849][img]http://ruby-lang.org.cn/forums/images/common/back.gif[/img][/url]
##这里必须要记住的是这三个CMD命令
1.e:\rails\work>rails demo #create一个rails应用
2.e:\rails\work\demo>ruby script/server #启动这个rails应用
3.e:\rails\work\demo>ruby script/genera ... [/quote]
controller和views有啥关系呀?Ruby是怎么把他们联系起来的呀?
这些是知识点吧。也是Ruby和Rails的妙处所在(他们的没有明显的借口调用)。
小伙子,加油呀!
drive2me 2007-11-4 09:22
还有,你三篇文章的字体都不一样,看上去很混乱哦,注意使用默认的字体和大家的风格一样吧。
要注意细节哦。呵呵!
谢谢积极地行动。
drive2me 2007-11-4 09:38
至于这本书,我不想评价了。当我在它的例子里碰到那个问题后,我就没有再看它了。哈哈,被我打入冷宫了!不过它也有点老,但可以理解,毕竟不是现在的书。
建议版主,把那个例子的做法贴上来,对新手会有很大帮助的。
谢谢!
admin 2007-11-4 09:52
第二版的书还好啊。针对的是Ruby 1.8.4的,Rails 1.2的。不算旧的。
drive2me 2007-11-17 09:55
版主,你做得很好,呵呵。
继续加油,我们需要你!
hutuxian 2007-12-14 14:07
这本书不错的,跟着书上做完一遍例子,再看完整本书,好像能摸着点门道了,感觉挺好的。
ccfc1983 2007-12-27 20:38
我在跟着例子做的,直到126页(英文版的2ed)时,也就是加入ajax的时候,当我点(add to cart)按钮时页面不会刷新,
要手动刷新才能看到结果,不知道什么问题,疯掉了,有谁遇到过这一问题吗?
vexille 2008-3-4 22:13
怎么下载
瀛州司马 2008-3-15 21:02
一头雾水,不过继续加油中
wosohu 2008-3-16 23:22
我也在看这本书,我用的是netbeans6.01.感觉很不顺,问题很多,比如打开项目时,项目名称那儿十灰色的,文件夹中也没有文件;但用aptana就没有什么问题,是不是我的netbeans配置不对啊?你们怎么配置的?谢谢。
shanghaichris 2008-3-17 23:16
我还是用TextMate写,感觉比较实在一点,IDE不是不好,只是不能领会其中的精妙
taotao6086 2008-4-10 18:28
其实做书上的例子最好不要ror自带的ide,无论你是什么系统,这样可以让你更深入的了解ror的工作原理,我做的时候就是这么做的。感觉ror入门还是挺快的。
ymzi 2008-4-25 22:31
怎么下载
巴黎草莓 2008-5-6 21:29
挖。。。楼主看来对这本书研究的很透了呀。。
我想问下这本书里的depot代码能完全实现吗?有没有发现什么bug呢??
请回复
luo528 2008-6-12 17:51
能实现
遇到问题得想办法:)
drive2me 2008-6-12 20:36
[quote]原帖由 [i]巴黎草莓[/i] 于 2008-5-6 21:29 发表 [url=http://www.ruby-lang.org.cn/forums/redirect.php?goto=findpost&pid=15198&ptid=1849][img]http://www.ruby-lang.org.cn/forums/images/common/back.gif[/img][/url]
挖。。。楼主看来对这本书研究的很透了呀。。
我想问下这本书里的depot代码能完全实现吗?有没有发现什么bug呢??
请回复 [/quote]
在以前的Rails版本中都可以实现的。
在最近的Rails2.0以上的版本中,可能在要有一些调整,调整后就可以了。
lwen2000 2008-7-31 15:11
我也看了那本书遇到很多问题,不过多琢磨琢磨就ok啦
sword721 2008-8-27 17:27
:lol :lol :lol :lol :lol :lol :lol
页:
[1]