トップ 最新の日記 ユーザー登録 ログイン ヘルプ

のびのびなRuby日記 このページをアンテナに追加 RSSフィード

2006-07-08

Railsモデルクラスを外から呼ぶ Railsのモデルクラスを外から呼ぶ - のびのびなRuby日記 を含むブックマーク はてなブックマーク - Railsのモデルクラスを外から呼ぶ - のびのびなRuby日記 Railsのモデルクラスを外から呼ぶ - のびのびなRuby日記 のブックマークコメント

この文書はなんなの?

Ruby on Railsモデルクラスを外から呼び出し、遊んでみたときのメモをまとめてみました。

最初にやることは?

呼びたいモデルクラスとdatabase.ymlファイルがある場所をメモしておきましょう。

この文書では、D:\Development\RadRailsWorkspace\RadRailsVer063\depot_o\app\models直下にあるordersモデルを呼び出す手順を記述します。

またD:\Development\RadRailsWorkspace\RadRailsVer063\depot_o\config直下にdatabase.ymlファイルを使用しデータベース接続します。

ordersテーブルとdatabase.ymlの確認

f:id:NobiNobiKota:20060708210350j:image

f:id:NobiNobiKota:20060708210402j:image

  • database.ymlの確認
#database.ymlの一部を引用
development:
  adapter: mysql
  database: depot_development
  host: localhost
  username: dave
  password: wibble
  encoding: utf8

次にやることは?

適当ディレクトリに、ordersモデルクラスを呼び出すファイルを作成してみましょう。

当文書では、D:\Development\PracticeRubyディレクトリ直下にclient_order.rbというファイルを作り、client_order.rbの中身を以下のようにしました。

=begin
ファイル名:client_order.rb
作成日:2006/7/8
=end

#Active Recordをロード
require 'rubygems'
require_gem 'activerecord'

#database.ymlファイルをロード
#ディレクトリの区切りは、「/」(半角スラッシュ)にします。\マークだとエラーになります。
DATABASE_YML_FILE = 'D:/Development/RadRailsWorkspace/RadRailsVer063/depot_o/config/database.yml'
db_config = YAML::load(File.open(DATABASE_YML_FILE))

#上で読み込んだdatabase.ymlファイルの内、developmentセクションに書いてあるデータベース接続情報を読み込んでdevelopmentセクションに設定したデータベースへ接続します。
ActiveRecord::Base.establish_connection(db_config['development'])

#D:\Development\RadRailsWorkspace\RadRailsVer063\depot_o\app\models直下にあるorderモデルクラスをロード
ORDER_MODEL_PATH = 'D:/Development/RadRailsWorkspace/RadRailsVer063/depot_o/app/models/order'
require ORDER_MODEL_PATH

#Orderテーブルを全検索した結果をorders変数に代入
orders = Order.find(:all)

#ブロックを使用して検索結果を表示
orders.each{|order|
 printf("Name: %s   Email: %s\n",order.name,order.email)
}

order_client.rbを実行

order_client.rbを実行してみましょう!

  • order_client.rbの実行結果
D:\Development\PracticeRuby>ruby client_order.rb
Name: Kate Hudson   Email: kate@abc.com
Name: Andrea Anders   Email: Andrea@abc.com
Name: Joey Tribiani   Email: joey@HowAreYouDoing.com