FrontPage  Index  Search  Changes  RSS  Login

(Rails) ActiveScriptRuby環境でインストール

前提

  • 2008/02/23現在のバイナリを利用します
  • 執筆者は、RailsならびにMySQLの知識がまったくありません。
    • 用語は正しくない場合があります。
  • とりあえず、bookmark情報を入力できるものを目指します

Ruby

Rails

  • 2.0.2
    • gem installから。後述します

データベース

手順

インストール

Ruby

  • ダウンロードしたmsiからインストール
    • binをWindowsのPATH環境変数に通すなり。

Rails

  • ActiveScriptRuby の gemからインストールします
>gem install rails --inculde-dependencies
:
(最新版にしました)
:
:
:
>gem update --system
>gem install mysql
>gem list

 *** LOCAL GEMS ***

 actionmailer (2.0.2, 1.3.3)
 actionpack (2.0.2, 1.13.6, 1.13.3)
 actionwebservice (1.2.6, 1.2.3)
 activerecord (2.0.2, 1.15.6, 1.15.3)
 activeresource (2.0.2)
 activesupport (2.0.2, 1.4.4, 1.4.2)
 gettext (1.10.0)
 hatenaapigraph (0.2.2)
 hoe (1.4.0, 1.3.0)
 hpricot (0.6)
 mechanize (0.6.11, 0.6.10)
 mysql (2.7.3)
 rails (2.0.2, 1.2.3)
 rak (0.8.0)
 rake (0.8.1, 0.7.3)
 rubyforge (0.4.4)
 rubygems-update (1.0.1)
 sources (0.0.1)
  • mysqlとupdateはどちらが先がいいのか・・・
  • おそらく不要なものも入ってます。

MySQL

  • 以下をダウンロードしました
    • mysql-essential-5.0.51a-win32.msi
    • mysql-gui-tools-5.0-r12-win32.msi
      • MySQL AdministratorというGUIツールを起動するために利用します。(今後はどう使うんだろう。。)
  • 順番にインストール
    • ローカルのrootパスワードを設定

2286108966_6ff7b811c7.jpg 2286109560_29f592c246.jpg

  • WindowsのPATH環境変数には通すよう、インストール後の設定で指定

2285318153_34ab8478b0.jpg

  • おわり

2286109560_29f592c246.jpg

設定

  • 名前を適当に bookmark とします。以下の属性を持ちます。
    • 名前
    • url
    • 一個だけタグ
      • これ以上難しいのはわかりません。。。orz

MySQL

  • [スタート]-[プログラム]-[MySQL]-[MySQL Administrator]を起動
  • ログイン

2285320399_d76a58624c.jpg

  • カタログを選択

2286110954_2cfc01ce58.jpg

  • 左下で右クリック、Create New Schemeを選択
    • Schema nameとして、bookmark_developmentを入力

2286111398_7cbd936907.jpg 2285322053_962f758ac6.jpg

  • 終わり

Rails

  • C:\Rails\ の下に作成することにします
>cd c:\Rails
  • MySQLを利用するので、 -d mysqlをつけます
>rails -d mysql bookmark
  • 以下のファイルを編集します
C:\Rails\bookmark\config\database.yaml
---
# MySQL.  Versions 4.1 and 5.0 are recommended.
#
# Install the MySQL driver:
#   gem install mysql
# On Mac OS X:
#   sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
# On Mac OS X Leopard:
#   sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
#       This sets the ARCHFLAGS environment variable to your native architecture
# On Windows:
#   gem install mysql
#       Choose the win32 build.
#       Install MySQL and put its /bin directory on your path.
#
# And be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
development:
  adapter: mysql
  encoding: utf8
  database: bookmark_development # ココに合わせて、schemeを前もって作ってみました
  username: root                 # SQLインストール時に入力し、MySQL Administratorを
  password: password             # 起動する際に必要なusernameとpassword
  host: localhost
(略)

Scaffold

>cd c:\Rails\bookmark
>ruby script\plugin install scaffolding
:
(略)
:
>ruby script/plugin install http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/classic_pagination/
:
(略)
:
>ruby script/plugin install http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/will_paginate/

リソースの定義

  • とりあえず以下のようにします。
  • リソース
    • 名前はbookmark
  • 属性
name String
url String
tag String
>cd c:\Rails\bookmark
>ruby script\generate scaffold bookmark name:string url:string tag:string
     exists  app/models/
     exists  app/controllers/
     exists  app/helpers/
     create  app/views/bookmarks # ブラウザにurlを入れるときに、ここのbookmarks を入れることになります。
     exists  app/views/layouts/
     exists  test/functional/
     exists  test/unit/
     create  app/views/bookmarks/index.html.erb
     create  app/views/bookmarks/show.html.erb
     create  app/views/bookmarks/new.html.erb
     create  app/views/bookmarks/edit.html.erb
     create  app/views/layouts/bookmarks.html.erb
     create  public/stylesheets/scaffold.css
 dependency  model
     exists    app/models/
     exists    test/unit/
     exists    test/fixtures/
     create    app/models/bookmark.rb
     create    test/unit/bookmark_test.rb
     create    test/fixtures/bookmarks.yml
     create    db/migrate
     create    db/migrate/001_create_bookmarks.rb
     create  app/controllers/bookmarks_controller.rb
     create  test/functional/bookmarks_controller_test.rb
     create  app/helpers/bookmarks_helper.rb
      route  map.resources :bookmarks
  • db\migrate\001_create_bookmarks.rbの中身を確認
    • 3つの属性がいます。
class CreateBookmarks < ActiveRecord::Migration
  def self.up
    create_table :bookmarks do |t|
      t.string :name
      t.string :url
      t.string :tag

      t.timestamps
    end
  end

  def self.down
    drop_table :bookmarks
  end
end

データベース作成

>cd C:\Rails\bookmark
>rake db:migrate
(in C:/Rails/bookmark)
== 1 CreateBookmarks: migrating ===============================================
-- create_table(:bookmarks)
   -> 0.0000s
== 1 CreateBookmarks: migrated (0.0000s) ======================================
  • MySQL Administratorで見てみます
    • [カタログ]-[bookmarks_development]を選択
    • Table Nameに、bookmarksが出来ています
    • 中身はこうなっています

確認

  • WEBrickを起動してブラウザで見てみます
>cd C:\Rails\bookmark
>ruby script\server
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2008-02-23 18:17:06] INFO  WEBrick 1.3.1
[2008-02-23 18:17:06] INFO  ruby 1.8.6 (2007-06-07) [i386-mswin32]
[2008-02-23 18:17:06] INFO  WEBrick::HTTPServer#start: pid=5812 port=3000

2285316753_860b1b3a7b.jpg

  • New

2285317221_431a2a8ccf.jpg

  • List

2285317649_388d792b64.jpg

さらに

>cd C:\Rails\bookmark
>ruby script\console
Loading development environment (Rails 2.0.2)
>> 10000.times do |i|
?> Bookmark.create(:name => "bookmark#{i}", :url => "http://hoge#{i}.com", :tag => "favorite#{i}")
>> end
=> 10000
>> quit
  • WEBrickを再起動し、再度ブラウザで閲覧
  • 一覧は遅くなりました。当たり前か。。
Last modified:2008/02/24 00:12:51
Keyword(s):
References:[(Rails) Ruby on Rails]