- 浏览: 521724 次
- 性别:
- 来自: 无锡
最新评论
-
鬼一天:
代码有问题,没有考虑负数的情况。
根据经纬度和半径计算经纬度范围 -
Tair:
...
通过反射把map中的属性赋值到实体类bean对象中 -
springmvc_springjpa:
spring mvc demo教程源代码下载,地址:http: ...
Spring3.0 MVC的初次尝试 -
酷的飞上天空:
haiyinlong 写道private File value ...
使用HttpUrlConnection进行post请求上传文件 -
lliiqiang:
分析很难,好的规则持久,靠某个方法条件局限不能证明长久
ruby的基本类型
文章列表
AssetTagHelper
官方链接:http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html
auto_discovery_link_tag(type = :rss, url_options = {}, tag_options = {})
返回一个连接标签,用于让浏览器或新闻阅读器自动发现RSS或ATOM Feed,类型可以是:rss,:atom。
参数:
:rel ,指定页面与这个连接的关系,默认为alternate
:type,覆盖MIME类型(如‘application/at ...
模型命名规则
数据库表名:hello_texts, 小写,单词间下划线,复数
类名: HelloText, 单词首字母大写,单数
文件名: hello_text.rb,小写,单词间下划线,单数
控制器命名规则
类名: MyTestController, 单词首字母大写,以Controller结尾
文件名:my_test_controller.rb,小写,单词间下划线
视图命名规则
文件名: test.rhtml, ...
ActiveRecord是Rails进行数据库操作的核心组件。它采用标准的ORM模型,将表映射到类,将行记录映射到实例对象,将字段映射到对象的属性。
官方文档地址:http://api.rubyonrails.org/classes/ActiveRecord/Base.html
关联:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
第一个简单例子
Rails的模型类都是继承自ActiveRecord::Base,这样该模型类就具有了对应数据库表的操作方法。默认情况模型类直接对应的 ...
URL的映射规则,在config/routes.rb文件中。这是一个ruby类,不是配置文件。
设置默认主页的映射,例子:
map.root :controller => "home"
这表示网站的主页的控制器为home,action为index。当然还要把public下的index.html移出或改下名字。
map.connect 'book/:bookid',:controller=>'book',action=>'show'
匹配路径
http://localhost:3000/book/1
上面:controller和:ac ...
控制器简单介绍
一个简单的控制器中的例子
class SimpleController < ApplicationController
def index
end
end
可以看出,我们自己建立的控制器默认继承ApplicationController类。那ApplicationController类到底有什么作用呢
# Filters added to this controller apply to all controllers in the application.
# Likewise, all the methods added will be ...
RMagick和ruby-debug-ide还是没有安装成功,郁闷啊。
Rails的文件上传说起来还是很容易实现的,相比来说java的文件上传那是一个麻烦啊。
controller如下:
#coding:utf-8
class ImageController < ApplicationController
def index
render :action => "img"
end
def new
if request.post?
img = params["img"]
...
乱码情况一:netbeas控制台输出乱码
具体表现为:在程序中定义中文字符串,然后输出。但输出为乱码
解决方法:打开netbeans安装目录,找到etc目录下的netbeans.conf文件。在netbeans_default_options的最后面添加上-J-Dfile.encoding=UTF-8
...
对Rails的一个简单的练习
一个学生和教师的CRUD,以及简单的ajax应用。学生和教师为多对一得关系
model为:
class Student < ActiveRecord::Base
belongs_to :teacher
end
class Teacher < ActiveRecord::Base
has_many :students,:dependent=>:delete_all
end
migrate为:
class CreateTeachers < ActiveRecord::Migration
def self.u ...
今天学习rails,在使用scoffold建立一张表的CRUD时遇到访问数据库失败。
表现为,当需要连接数据库时ruby.exe无响应。
使用ruby console测试时,报错如下
经过一番网络的搜索,找到解决方法。
下载旧版libmySQL.dll文件复制到ruby的bin目录。原来是拷贝的mysql安装目录下的libmySQL.dll文件。
再次测试,OK
学习平台:
os:windows7
rails版本:Rails 2.3.8
ruby版本:ruby 1.9.1
mysql版本:mysql5.1
为什么在netbeans下运行ruby程 ...
折腾了半天终于能用mysql的ruby驱动正常连接数据库,并进行CRUP的基本操作了。
过程如下
首先是安装mysql的ruby驱动,方法:gem install mysql 或者gem install ruby-mysql
拷贝mysql安装目录中的libmySQL.dll到ruby的lib目录,否则require 'mysql' 不会成功
如果安装的是ruby-mysql驱动则连接的host不能为localhost(linux下可能没问题),改为127.0.0.1。
连接例子如下:
require 'mysql'
begin
my = Mysql.connec ...
zip文件的压缩与解压缩
使用了扩展库rubyzip实现
安装:gem install rubyzip
文件的压缩步骤为:使用zipfile的open方法打开zip文件,调用add方法添加文件到压缩文件
解压缩步骤为:打开zip文件,掉用zipfile的each方法,然后利用迭代传进来的zipentry对象调用extract方法
代码如下
压缩文件:
require 'zip/zip'
class ZipUtil
# 压缩文件方法
# zip_file_name 压缩文件绝对路径,含文件名
# file_path 要解压的目录或文件
def self.add_ ...
文件与目录的操作
ruby中文件和目录的操作基本上是基于File和Dir类的操作
创建一个File类的实例方式为
file = File.new("d:/text.txt")
file = File.open("d:/text.txt","w")
File常用的实例方法有:
atime :返回文件的最后访问时间,一个Time对象
stat : 返回文件的状态信息对象,为FIle::Stat的实例,通过这个对象可以获得文件的创建修改时间以及大小等信息
mtime:返回文件的最后修改时间
path:返回文件的完整 ...
数组常见运算方法
<< 追加元素 例如:[1,2]<<3 返回[1,2,3]
+ 串联方法 合并两个数组 例如:[1,2]+[3,4] 返回[1,2,3,4]
- 数组差集 删除比较数组中出现的元素 例如: [1,2,3]-[3,4] 返回[1,2]
& 数组交集 例如[1,2,3]&[3,4] 返回[3]
| 数组并集 例如:[1,2,3]|[3,4] 返回[1,2,3,4]
* 重复数组 如果*后面是整数则重复整数次数组,如果为字符串,则使用此字符串连接数组元素
例如:
[1,2,3]*2 #返回[1,2,3,1,2,3]
...
ruby的基本类型包括数字,字符串,数组,符号,散了表,区间和正则表达式,这些基本类型都是以类的形式定义的
数字:
ruby中的数字分为整形(Integer)、浮点数(Float)、复数(Complex)这三种。其中整数又分为定整数(Fixnum)和大整数(Bignum)。
Integer
整数的书写例子:
#书写整数时,可根据需要在数字之间任意加入下划线而不会影响数字的值
a=123_456_789
puts a #=>123456789
puts 0b100100 #二进制 =>36
puts 0123 #八进制 =>83
puts ...
ruby中的代码块
代码块可以看作是一个没有名字的方法,他本身也是一个对象,一个Proc类的实例
匿名的代码块又两种创建方式
一种使用花括号包围的方式,
如
{puts "hello"}
另一种是do和end关键字
do
puts "hello"
end
代码块创建以后就可以将它与方法调用相关联,在方法中可以使用yield回调该代码块
如:
def test_function
puts "代码块开始"
yield
puts "代码快结束"
end
tes ...