RUBY实践—数据库简单操作
开发环境:
Ruby:1.9.1
Rails:2.3.5
Rake:0.8.7
Rack:1.0.1
Mysql:5.0.9
Ruby-mysql:mysql-2.8.1-x86-mswin
IDE:RubyMine2.0.1
数据库准备:
database:dbdevelopment
user:crystal
password:crystal
一、创建Ruby项目RorTest
二、修改database.yml
这里只启用development环境数据库,修改配置文件如下:
development:
adapter: mysql
encoding: utf8
reconnect: false
database: dbdevelopment
pool: 5
username: crystal
password: crystal
host: localhost
三、运行Scaffold
RorTest->New->Scaffold 运行参数:Product title:string description:string price:integer
成功运行后,将在控制台中输出运行过程中创建的目录及文件(包括Model、Help、View等)
四、反向生成数据库表
在db/migrate下找到类似 create_products.rb文件,右键Run
成功运行后将在对应数据库中生成schema_migrations及products数据表
五、修改routes.rb
在routes.rb中添加映射规则
map.connect '/products',:controller=>"product",:action=>"index"
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
六、启动服务器,运行(http://localhost:3000/products)
注:Show、Edit、Destroy、New product功能可以自己测试一下,另外如果在model/product.rb中添加如下代码,可以对product中的字段进行必填验证,有兴趣的朋友可以测试一下
class Product < ActiveRecord::Base
#验证必填项
validates_presence_of:title,:price
end
class Product < ActiveRecord::Base
#验证必填项,message为显示的内容,也可不填 ,如下
#validates_presence_of:title,:price
validates_presence_of:title ,:message=>": Please input title"
validates_presence_of:price, :message=>": Please input price"
end
相关文档:
最近由于学习使用linux下的C开发,需要查询Linux C函数参考,就经常上http://man.chinaunix.net/develop/c&c++/linux_c/default.htm查看,描述得比较详细而且还有例子。
网上还有许多各种技术的网页格式的参考材料都非常强大,可惜很多时候都没有网。于是就想写个脚本可以把文档下载,像android开发者文档一样弄到本地 ......
rubygems
Ruby on Rails 是一个可以使你开发,部署,维护 web 应用程序变得简单的框架。
Ruby的作者于1993年2月24日开始编写Ruby,直至1995年12月才正式公开发布于fj(新闻组)。之所以称为Ruby,是因为Perl的发音与6月的诞生石pearl(珍珠)相同,因此Ruby以7月的诞生石ruby(红宝石)命名。rails在英文中是栏杆的 ......
正常情况下,ruby如果发现文件夹中有system,readonly,hide类型的文件,则是不能直接删除
他们的。如何解决呢?
以其人之道还治其人之身!
def dryf(fpath) #destroy file
x = Iconv.iconv('utf-8','gbk',fpath).to_s
%x{attrib -R -S -H \"#{Iconv.iconv('gbk','utf-8',x).to_s}\"}
f = File.new(f ......
我们知道ruby中对于整数的[],[]=,<<,>>操作是针对于二进制的值来运算的。
我现在写一个针对十进制数操作的类,拥有整数的所有方法,如下:
class InterEx
def initialize(val=0)
@val=val
end
def to_s
@val.to_s
end
def [](idx)
self.to_s[idx].to_i
end
d ......