ruby on rails中配置数据库,以及数据库与model层嫁接,增删改查详解

来源:互联网 发布:免费阅读软件哪个好 编辑:程序博客网 时间:2024/04/30 07:22
1.在ruby on rails框架中使用mysql需要先打通mysql,可以在配置文件中进行更改处理(如果你已经连接上了mysql请忽略1中的所有内容)
真实的目录结构如下(cmd命令下部分显示截取):
         .
         ..
         app
         config
         db
         doc
         lib
         log
         public
     307 Rakefile
  10,619 README
         script
         test
         tmp
         vendor


进入config文件夹下,里面目录如下所示
.
..
boot.rb
database.yml
environment.rb
environments
initializers
locales
routes.rb
====打开database.yml下进行更改里面的配置
#   gem install sqlite3-ruby (not necessary on OS X Leopard)
development:
  adapter: mysql
  database: demogao
  encoding: utf8
  username: root
  password: root
  port: 3300
  host: localhost
  pool: 5
  timeout: 5000
 说明:上面就是填写的数据库信息

 ----------------------------------------------

 2.接下来要进行控制器 和数据表中嫁接处理了(这可恶心死我了)

表的名字要加上s。我这里面叫做kingbraves(ps:人家就是这么设计的)在model层中创建如下


里面的内容如下
 class Kingbrave < ActiveRecord::Base
 belongs_to :Kingbrave, :class_name => "Kingbrave", :foreign_key => "id"
end
说明: belongs_to :Kingbrave 属于哪个model类 ,:class_name => "Kingbrave"哪个表 foreign_key => "id"主键是哪个(对于别的表是外键对于自己是主键)
---------
在进行增删改查之前,先开启服务器
D:\demogao>ruby script/server
=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails 2.2.2 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with development environment...
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready.  INT => stop (no restart).
** Mongrel 1.1.5 available at 0.0.0.0:3000
** Use CTRL-C to stop.
3.进行查询操作:
 def query
        @data = Kingbrave.find(:all);#find里面的值可以是id也可以是条件:all是获取到里面的全部数据
        render :json =>@data


 end


#进行数据添加的测试
    def addfun
        @peruserid=params[:userid]
        @perusername=params[:username]
        othdata =  Kingbrave.new( 
            :id=>'',
            :name=>@perusername
        )
         othdata.save   
    end
    #进行删除数据操作测试
    def delete
          @data = Kingbrave.delete(4);
    end
    #find_by_sql()允许我们掌控全局
    #进行更新处理
    def update
        #@deleid=params[:page]#进行删除id获取
        #kingbrave = Kingbrave.find(@deleid)
        #p kingbrave
       # render :json =>@kingbrave
        #kingbrave.name="华尔街"
        #kingbrave.save


1 0
原创粉丝点击