SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Rails ActionWebServiceジェネレータのカスタマイズ

Rails ActionWebServiceジェネレータをカスタマイズする方法の御紹介

ダウンロード サンプルソース (2.0 KB)

MstWebServiceGeneratorによるWebサービスクラスの生成

 まず、グループマスタやそのモデルをあらかじめ次のように定義して、rakeコマンドにより作成しておきます。

create_mst_group.rb
class CreateMstGroup < ActiveRecord::Migration
  def self.up
    create_table :mst_groups do |t|
      t.column :group_name, :string, :limit => 64, :null => false
      t.column :created_at, :datetime
      t.column :updated_at, :datetime
    end
    add_index :mst_groups, :group_name
  end

  def self.down
    drop_table :mst_groups
  end
end
mst_group.rb
class MstGroup < ActiveRecord::Base
end

 次に、図1のようにMstWebServiceGeneratorを、コマンドラインから実行します。コマンドラインは、Railsのアプリケーションを作成したルートディレクトリから実行する必要があります。

図01-完成イメージ:MstWebGeneratorを、コマンドラインから実行
図01-完成イメージ:MstWebGeneratorを、コマンドラインから実行

 第1引数に、データベース上の更新対象のテーブルに対応するモデルクラスを指定します。例えば、ここではmst_groupを指定することで、グループマスタの更新を行うWebサービスを定義しています。

 実際に生成されたクラスを図2に示します。

図02-完成イメージ:実際に生成されたクラス
図02-完成イメージ:実際に生成されたクラス

 その後、「http://localhost:3000/mst_group_service/invoke」にアクセスすれば、生成したWebサービスのテストを行うことができます。例えばCreateのメソッドを呼び出してみると、図4のような結果が得られます。

図04-Webサービスのテスト
図04-Webサービスのテスト

まとめ

 本稿では、Ruby on Railsで提供されているWebサービスジェネレータをカスタマイズし、データベース上のテーブルを更新できるようにしました。

 同様の方法でさらに機能を追加していけば、より実用的になると思います。ジェネレータは労力の削減や生産性の向上に役立つので、本稿で紹介した内容が読者の皆さんの労力削減に役立てば幸いです。

参考資料

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
特集記事連載記事一覧

もっと読む

この記事の著者

ryujinseiichi(リュウジンセイイチ)

http://ryujinseiichi.sblo.jp/ RubyやAIRなどの新規技術に興味があり、研究を行っています。 最近、seasar2やBPMの研究も始めました。  

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2659 2008/07/11 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー