TOP業務システム> 2. Webブラウザで確認しながら実装
OSS CMS Rubricks
Rubricksではじめる簡単・お手軽コミュニティポータル

第4回:Rubricksコンポーネントの作成

著者:アスタリクス  大西 正太   2007/1/15
前のページ  1  2  3   4  次のページ
2. Webブラウザで確認しながら実装

   次にモデル、コントローラ、ビューを実装してきます。
モデルの実装

   今回はリスト2のようにリレーションの記述のみを追加して開発を進めます(実際には通常のRailsアプリケーションと同様に、バリデーションなどの記述が必要ですので注意してください)。

リスト2:RAILS_ROOT/components/mybbs/mybbs_item.rb
class Mybbs::MybbsItem < ActiveRecord::Base
   belongs_to :rubricks_user
end


コントローラの実装

   ジェネレータによって生成されたコントローラに、リスト3のように記述を追加してください。基本的に通常のRails開発時と同様であることがわかると思います。なお2行目の「define_page」の宣言をすることで、画面レイアウトが構成されます。

リスト3:RAILS_ROOT/components/mybbs/index_controller.rb
class Mybbs::IndexController < ApplicationController
   define_page
   uses_component_template_root

   def main
      @all_items = Mybbs::MybbsItem.find_all
   end

   def post
      new_item = Mybbs::MybbsItem.new(@params[:mybbs_item])
      new_item.rubricks_user_id = current_user.id
      new_item.save
      redirect_to :action => 'main'
   end
end


ビューの実装

   コントローラをジェネレートした際にビューファイルも自動生成されています。

   今回はリスト4のように記述を追加します。こちらも基本的にはRails開発の際と同様にrhtmlを作成します。ただし画面のメインコンテンツ部分のみを記述するため、HTMLやBODYなどのタグを記述する必要はありません。

リスト4:RAILS_ROOT/components/mybbs/index/main.rhtml
<h1>My BBS</h1>
<h2>新規メッセージ</h2>
<%= form_main_tag :url => {:action => :post} %>
   <div>タイトル:</div>
   <div><%= text_field 'mybbs_item', 'title', :size => 32 %></div>
   <div>内容:</div>
   <div><%= text_area 'mybbs_item', 'content', :cols => 70, :rows => 4 %></div>
<%= submit_tag "投稿" %>
<%= end_form_tag %>

<% unless @all_items.blank? %>
   <% @all_items.each do |item| %>
      <h2>タイトル:<%= item.title %></h2>
      <h3>
         投稿日:<%= item.created_at.strftime("%Y/%m/%d") %>
         投稿者:<%= item.rubricks_user.name %>
      </h3>
      <p><%= item.content %><p>
   <% end %>
<% end %>


サンプルコンポーネントの動作確認

   ここまでの作業でサンプルコンポーネントは完成です。Webブラウザでコンポーネントを動かしてみてください。正常に動作していれば図4のようにBBSが動作するはずです。

完成したサンプルコンポーネント
図4:完成したサンプルコンポーネント
(画像をクリックすると別ウィンドウに拡大図を表示します)

前のページ  1  2  3   4  次のページ


アスタリクス株式会社  大西 正太
著者プロフィール
株式会社アスタリクス   大西 正太
JavaEEフレームワークの設計構築や開発プロセス策定などの業務を経て、現在は新規ビジネス創生に携わる。Ruby on Rails上に構築したオープンソースのCMS「Rubricks」(http://rubricks.org/)のコミッタ。


INDEX
第4回:Rubricksコンポーネントの作成
  Rubricksコンポーネントの概要
  サンプルコンポーネントの作成
2. Webブラウザで確認しながら実装
  3. 定義情報の記述と配布物出力