¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

Ruby/Ruby on Rails/step by step ¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×(No.5)


Ruby/Ruby on Rails

Ruby on Rails¤Ç·«¤êÊÖ¤·Áàºî¤·¤Æ³Ð¤¨¤¿¤¤»öÊÁ¤òstep¤È¤·¤ÆÀ°Íý¤·¤Þ¤·¤¿¡£

step01 InstantRails¤Îµ¯Æ°¤Èirb

C:\InstantRails\InstantRails.exe¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤Æµ¯Æ°¤·¤Þ¤¹¡£

step01_InstantRails.gif


DOS¥×¥í¥ó¥×¥È²èÌ̤ò³«¤­¡¢irb¤ÇÁàºî¤·¤Æ¤ß¤Þ¤¹¡£
[I¤Î¥¢¥¤¥³¥ó] - [Rails Applications] - [Open Ruby Console Window]

step01_irb.gif

³Æ¥³¥Þ¥ó¥É¤Î°ÕÌ£

cmd /f:octrl+f¤Ç¤Î¥Õ¥¡¥¤¥ë̾Êä´°¤òÍ­¸ú¤È¤·¤Þ¤¹
ruby -vruby¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤·¤Þ¤¹
irb -ribr/completionÊä´°µ¡Ç½Í­¤ê¤Çirb¤òµ¯Æ°¤·¤Þ¤¹
pu[tab]ÅÓÃæ¤Çtab¥­¡¼¤ò²¡¤¹¤ÈÊä´°¤¬¸ú¤­¤Þ¤¹
puts "Hello World!"rubyʸ¤òÂǤĤȤ¹¤°¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹
exitirb¤ò½ªÎ»¤·¤Þ¤¹

¤è¤¯»È¤¦Áàºî¤òrails_appsľ²¼¤Î¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤Ë¤·¤Þ¤·¤¿¡£

setenv.batcmd /f:o
irb.batC:\InstantRails\ruby\bin\irb -rirb/completion

step02 ¥×¥í¥¸¥§¥¯¥È¤Î¿·µ¬ºîÀ®

  1. InstantRails¤«¤éDOS¥×¥í¥ó¥×¥È¤ò³«¤¯
    ¥«¥ì¥ó¥È¥Õ¥©¥ë¥À¤ÏC:\InstantRails\rails_apps¤È¤Ê¤ê¤Þ¤¹¡£
  2. rails ¥×¥í¥¸¥§¥¯¥È̾¤Ç¥×¥í¥¸¥§¥¯¥È¤ò¿·µ¬ºîÀ®
  3. cd ¥×¥í¥¸¥§¥¯¥È̾¤Ç¥×¥í¥¸¥§¥¯¥È¥Õ¥©¥ë¥À¤Ë°ÜÆ°
    °Ê¹ß¤ÎÁàºî¤Ï¥×¥í¥¸¥§¥¯¥È¥Õ¥©¥ë¥À¤Ç¹Ô¤¤¤Þ¤¹¡£

step03 Mongrel web¥µ¡¼¥Ð¤Îµ¯Æ°

  1. ¥×¥í¥¸¥§¥¯¥È¥Õ¥©¥ë¥À¤Çruby script\server¤ò¼Â¹Ô¤·¤ÆMongrel web¥µ¡¼¥Ð¤òµ¯Æ°
    ctrl+c¥­¡¼¤ÇÃæÃǤǤ­¤Þ¤¹¡£
  2. http://127.0.0.1:3000/¤ò¥Ö¥é¥¦¥¶¤Ç³«¤¯¤È¡¢¥×¥í¥¸¥§¥¯¥È¤ÎWeb¥Ú¡¼¥¸¤¬¸«¤é¤ì¤Þ¤¹¡£

step04 Aptana Studio RadRails

  1. Aptana Studio¤òµ¯Æ°
  2. ʸ»ú¥³¡¼¥É¤òUTF-8¤Ë½é´üÀßÄê
    [Window] - [Preferences] - [General] - [Workspace] - [Text file encoding]¤òUTF-8¤ÇÀßÄê¤ËÀßÄꤷ¤Þ¤¹¡£
    step04_RadRailsUTF8.gif

Rails¥×¥í¥¸¥§¥¯¥È¤Î¥¤¥ó¥Ý¡¼¥È

  1. [File] - [Import] - [Other] - [Import As New Project] - [Next]
    step04_RadRailsImport01.gif
  2. ¥×¥í¥¸¥§¥¯¥È¥Õ¥©¥ë¥À¤òÀßÄê
    step04_RadRailsImport02.gif
  3. ¤½¤Î¤Þ¤ÞFinish
    step04_RadRailsImport03.gif

step05 ¥Ç¡¼¥¿¥Ù¡¼¥¹ÀßÄê

config\database.yml¤ò³«¤¤¤Æ¡¢É¬ÍפʾðÊó¤òÆþÎϤ·¤Þ¤¹¡£

development:
  adapter: mysql
  database: ¥×¥í¥¸¥§¥¯¥È̾_development
  username: root
  password:
  host: localhost

test:
  adapter: mysql
  database: ¥×¥í¥¸¥§¥¯¥È̾_test
  username: root
  password:
  host: localhost

production:
  adapter: mysql
  database: ¥×¥í¥¸¥§¥¯¥È̾_production
  username: root
  password: 
  host: localhost

step06 ¥Ç¡¼¥¿¥Ù¡¼¥¹ºîÀ®

sql¥³¥Þ¥ó¥É¤ÇºîÀ®¤¹¤ëÊýË¡

  1. phpMyAdminµ¯Æ° [Instant Rails] - [I¥¢¥¤¥³¥ó] - [Configure] - [Database(via PhpMyAdmin)]
  2. SQL¥¢¥¤¥³¥ó¤ò¥¯¥ê¥Ã¥¯
  3. create database ¥×¥í¥¸¥§¥¯¥È̾_development default charset utf8;

rake¥¿¥¹¥¯¤ÇºîÀ®¤¹¤ëÊýË¡

  1. lib\tasks\setup_db.rake¥Õ¥¡¥¤¥ë¤òºîÀ®
    env = ENV['RAILS_ENV'] || 'development'
    database = "¥×¥í¥¸¥§¥¯¥È̾_#{env}"
    
    task :connect_db => [:environment] do
      ActiveRecord::Base.establish_connection(
        :adapter => 'mysql',
        :host => 'localhost',
        :username => 'root',
        :database => 'mysql'
       )
    end
    
    task :setup_db => [:connect_db] do
      ActiveRecord::Schema.define do
        create_database database
      end
    end
    
    task :destroy_db => [:connect_db] do
      ActiveRecord::Schema.define do
        drop_database database
      end
    end
  2. ¥×¥í¥¸¥§¥¯¥È¥Õ¥©¥ë¥À¤Ç¡Örake setup_db¡×
  3. ´Ä¶­¤òÊѤ¨¤¿DB¤òºîÀ®¤¹¤ë¤È¤­¤Ï¡Örake RAILS_ENV=production setup_db¡×

step07 migration¤Ë¤è¤ë¥Æ¡¼¥Ö¥ëºîÀ®

  1. ruby script\generate migration create_memos_table
  2. db\migrate\001_create_memos_table.rb¤òÊÔ½¸¡Ê¿ô»ú¤ÏÊѤï¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡Ë
    class CreateTable < ActiveRecord::Migration
      def self.up
        create_table :memos do |t|
          t.column :created_at, :datetime
          t.column :text, :string, :limit => 255
          t.column :location, :string, :limit => 64
        end
      end
    
      def self.down
        drop_table :memos
      end
    end
  3. ¡Örake db:migrate¡×¤Ç¥Þ¥¤¥°¥ì¡¼¥È¤ò¼Â¹Ô