Viewクラスの改造
最近Rubyネタが多いかもしれないけど、フレームワークの構築手順をきちんと記録しておけばきっとそれ以外に役立つ情報も紛れ込ませることができるかもしれないし、自分自身の開発記録にもなって便利なので、またまた書きます。
サンプルで作っている書籍登録サイトに書籍を分類分けするサンプルを作ろうと思ったら、「View」というボタンが気になりました。それほど表示する情報も無いのに、わざわざViewなどと銘打ってボタンを付けるほどの事も無いという点です。
ということで、今回はこれを自由に取るための改造です
Viewクラスに以下の設定とメソッドを追加
attr_reader :list_view_button attr_writer :list_view_button attr_reader :list_edit_button attr_writer :list_edit_button attr_reader :list_delete_button attr_writer :list_delete_button def initialize_values() @list_view_button = true @list_edit_button = true @list_delete_button = true end
そして、一覧を作っている「get_list_table(headers,values)」メソッドにてボタンをそれぞれの条件をもとに追加するコードを追加しました。
Controlクラスに以下のメソッドを追加
def customize_view() end
このメソッドを使ってViewを調整できるようにします。
ちなみに、今後Modelにも同じような要望がでるかもしれないので、Modelについてのメソッドもついでに追加してあります。
実際のカスタマイズ方法は、分類用の「book_categorys」というテーブルと「BookCategorys」というクラスで説明を行います。
book_categorysテーブルは
CREATE TABLE book_categorys {
id INTEGER PRIMARY KEY,
name VARCHAR(256)
}
とし、BookCategorysクラスは
class BookCategorys < Control
def initialize()
super("book_categorys")
@title = "分類"
end
def customize_view()
@vw.list_view_button = false
end
end
として、「bookcategorys.rb」という名前を付けてクラス用フォルダに保存します。
その後、header.rbに
load $class_dir + 'bookcategorys.rb'
を追加し、サイトのルートディレクトリにcategorys.rbというファイルを作って下記の内容を入力します。
#!/usr/local/bin/ruby
load "header.rb"
obj = BookCategorys.new()
obj.main()
これでURLを直打ちすればページにアクセスでき、分類の編集ができますが、それではちょっと格好悪いので、テンプレートのページを編集して容易にアクセスできるようにします。tplフォルダにある「page_main.html」から以下の部分を見つけて変更します。
<div id='menu'>
<a href="./">トップページ</a> |
<a href="categorys.rb">分類</a>
</div>
という具合で分類の編集ができるようになるわけですが、いかがでしょうか。
簡単なステップだと思われる方もおられれば、面倒だと感じられる方もおられることでしょう。
次回(がもしあれば)、この分類と書籍データをリンクさせる方法を解説してみたいと考えています。
また何かご意見・ご感想があれば聞かせて頂けると嬉しく思います。
追記
とりあえず、書籍に分類データを付加する改造は終わり。これをちょっと簡単にするために、いくつか機能の追加をしているから、またそれも合わせて後ほど解説します。(2007/10/01)
| 固定リンク
コメント