ror学习小结4

1 rails new 应用名称
2 启动服务器 rails server
  启动项:-p port:端口
          -b=ip
          -c:使用自定义rackup配置文件
          -d:使用服务器作为系统守护进程

3 建立项目时指定数据库 rails new blog -d=mysql
4 数据库config/database.yml中,记得象
   password:  "xxxxx" password和密码之间要有空格

5 新增控制器,指定一个动作
  rails generate controller home index
  会在app\view\home中增加一个index.htm.rb的文件
还要在config\routes.rb文件中,增加一行代码
   root :to => "home#index"
6 代码生成器
   数据库中POJO的表名要为复数形式,
  rails generate scaffold Article id:int name varchar(45) ........

7 进入脚手架默认生成的管理页,比如
   <%=link_to "文章管理",articles_path%>

8 执行流程:1)获得系统配置文件从enviroment,database.yml和initializers中,
           2) 用户的访问输入时,先访问boot.rb文件,再访问enviroment.rb文件,再访问routes.rb文件,再到

MVC执行流程
   

9 activerecord
    1)find(1,3),找主键为1,3的记录
    2)获得第一行和最后一行 Person.find(:last),Person.find(:first)
   3)findall: 
        Person.find(:all,:order =>"age")
   4)动态查询
      find_by_*,返回符合的第一个对象
     @people<<Person.find_by_sex("men")
    
     find_all_by_*:返回符合条件的所有对象
     find_by_*_and_*方法:
       Person.find_by_sex_and_age_and_id_and_name("男",26,2,"xxxxx) //返回一个
       Person.find_all_by_sex_and_age_and_id_and_name("男",26,2,"xxxxx) //返回所有

10 SQL语句支持
      Book.find_by_sql("xxxx");
      Book.find_by_sql(["select * from books where bookname=?",'xxxx']);

11 统计行数
     @number=House.count(:conditions=>"location='xxx'")

   count_by_sql:
       @number=House.count_by_sql("select count(*) from ....");
12 new和save
    @house=House.new
     @house.xxx=....
     @house.save
    
   hash:
     house=Hash.new
      house[:price]=xxx
      house[:dddd]=xxxxx
     @house=House.new(house)
     @house.save


13 create方法
     House.create do |house|
          house.price=xxx
         .......
      end

    HASH的方法:
      House.create(
           :price =.xxx, 
           :house =xxxx
          )

14 UPDATE方法
    用来修改某个字段的值,一次只能修改某一个属性的值,比如
     log.update_attribute(:log,"xxxxxx)
   update_attributes方法,可以接收进行HASH修改
  
   log.update_attributes([:log=>"xxxxx",:time=>time.now])
   //时间要匹配,要在config/enviroments/development.rb中进行设置
      config.tome_zone="BeiJing"
    
    Log.update(1,(:record=>Time.now, :log=> "xxxxxx"})
   其中第1个参数指定对象的id
  也可以修改多条
      Log.update([2,1],[{:record_time=>......},{   }]
    
  update_all:
      Log.update_all("log='xxxxx'","id<10") //更新id<10的所有记录的log

15删除数据
   1) Log.delete(1);
      Log.delete([1,3,4,5])//删除的id在一个集合中
   2)delete_all
      Log.delete_all("id>10")
    3)destory
        这个方法会逐一找出要删除的记录,然后再删除它们,以事务的方式执行
   4)destory_all
       Log.destroy_all("id>10")

你可能感兴趣的:(ror学习小结4)