1:rails 惯例优先,为web设定了大量的默认配置
2:mvc:数据模型,用户视图,控制逻辑
3:rails应用程序 在执行之前,不需要编译,会即刻被解释,速度快
4:ruby解释器将ruby代码翻译成机器可理解并执行的内容
5:rails 控制台: ruby script\console
6:ruby代码 嵌入 html中就是erb,将代码放在标签里。2种形式
1种含有等号,<%= %> 是输出语法,标签中的ruby表达式会显示在浏
览器中,2种是不带等号 <% %>,显示代码的,就是在里面写Ruby代码
7:Rails 开发目录结构
1:controllers: 放controller类
2:views:放模板文件
3:models:数据模型类
8:开发环境:软件源代码是变化的,可以看到 错误信息,栈跟踪
测试环境:每次测试,需要恢复数据库中原始数据,保证测试结果一致,且行为可以重复
产品环境:没有调试程序日志,栈跟踪信息
9:ruby类名,骆驼峰写法, ruby文件名小写,使用下划线隔开
10:ActiveRecord:(模型)处理程序与数据库(与数据库建立连接,存储和获取数据)
11:ActionController(控制器):处理,模型与视图之间浏览器请求
处理请求,从模型中取出数据递给视图, 接受浏览器信息,更新模型
12:ruby的解析器,其自身的核心和标准库,一部分是C写的,一部分是ruby写的。
13:Ruby 程序在执行时,会提供一些环境变量供程序代码读取。
$0 : 被执行程序的名字,通常是程序的文件名。
$* : 程序执行参数。
__FILE__ : 当前源文件的名字。
__FILE__ 和 $0 通常组合起来使用,用于判断当前文件是否是直接被执行的主程序文件。
if __FILE__ == $0
puts "Main..."
end
14:Object
和多数语言一样,Object 是 Ruby 所有类的祖先,它的方法自然会被所有的子类继承。
obj.object_id() : 输出对象唯一标识符。
obj.class() : 返回对象类型(type)。
obj.eql?(obj2) : 判断两个对象值是否相同。
obj.equal?(obj2) : 判断两个对象 ID 是否相同。
obj.instance_of?(class) : 判断对象是否指定类的实例。
obj.kind_of?(class) : 判断对象是否指定类或其子类的实例。
obj.nil?() : 判断对象引用是否为空。
obj.to_s() : 返回对象字符串表示。
class Class1
def initialize(i)
@i = i
end
end
a = Class1.new(123)
b = Class1.new(123)
puts a.object_id
puts a.class
puts a.eql?(b)
puts a.equal?(b)
puts a.instance_of?(Class1)
puts a.kind_of?(Object)
puts a.nil?
puts a.to_s
输出:
21627090
Class1
false
false
true
true
false
#<Class1:0x29401a4>