jruby on rails学习笔记

安装:

jruby -S gem install rails mongrel jdbc-mysql activerecord-jdbcmysql-adapter
这一步是安装几个必须 的gem包,gem包在java中类似于jar  
mongrel 包是一个类似于tomcat的服务器
jdbc-mysql activerecord-jdbcmysql-adapter这几个是用于连接mysql数据库的适配器,有了它才能连接msyql数据库。
执行jruby -S gem list 这个命令用来查看装了哪些gem包


安装warbler gem工具,用来打包成war包
jruby -S gem install -y jruby-openssl warbler
是这样的:在rails工程的根目录运行
jruby -S warble config
jruby -S warble war
jruby -S warble pluginize
jruby -S warble war:aot

 修改config/database.yml adapter: jdbcmysql  adapter表示是数据库的连接适配器

创建rails工程
jruby -S rails myapp -d mysql 这一步是创建名为myapp的rails工程项目

进入所创建工程myapp目录
jruby -S script/generate scaffold post title:string content:string
jruby -S rake db:create:all
jruby -S rake db:migrate
jruby -S script/server
http://localhost:3000/posts

注:由于在jruby中,执行rake db:create:all本应该是创建三个环境的三个数据库的(myapp_development,myapp_test,myapp_production)
不过jruby中有个bug,它只创建了两个数据库,没有development这个数据库
所以你将config/database.yml文件中关于development那部分的数据库配置中的数据库名改为myapp_production,或自己手动创建一个myapp_development的数据库。
 三个环境可以自由切换,jruby -S script/server -e production 这样就是以上线环境来启动的,那么它用的就是production配置中的数据库

 

关联:
has_many :一对多,
belongs_to:多对一

多对多的关系是对称的关系,两个连接的表都互相使用has_and_belongs_to_many来声明它们之间的关系。在数据库中,多对多关联是使用中间连接表来实现的。它包含一对外键连接两个目标表。Active Record假定这个连接表的名字是两个目标表名以字母顺序串联起来。连接表categories和表products,Active Record会去找一个名为categories_products的连接表。

创建连接表

jruby -S   script/generate migration create_categories_products

# in migration   

 class CreateCategoriesProducts< ActiveRecord::Migration
     def self.up
        create_table :categories_products, :id  => false do |t|
      t.column :category_id, :integer

      t.column :product_id, :integer 

        end
    end
    def self.down
    end
end

# models/product.rb  
has_and_belongs_to_many :categories  
  
# models/category.rb  
has_and_belongs_to_many :products 

 

增加字段:
jruby -S  script/generate migration add_category_id_to_articles
在文件中这样写
  def self.up
    add_column :articles, :article_category_id, :integer
  end

还有要注意的就是用jruby on rails 开发程序的时候路径一定要使用rails的生成方式,否则就会出现路径问题!

备注:root_url是服务器地址,RAILS_ROOT常量获得的项目物理地址

TINYINT   就是MySql   中的   Boolean.    可以定义为   intyint(1)  

 

MySql   5.0   以后就有   Boolean   类型了.

 

你可能感兴趣的:(mysql,jdbc,Rails,ActiveRecord,jruby)