[前][次][番号順一覧][スレッド一覧]

rails:798

From: Hiroshi Takagi <gollum@h...>
Date: Sat, 17 Dec 2005 12:14:23 +0900
Subject: [rails:798] Re: 処理の共通化について

高木宏です。


On Fri, 16 Dec 2005 16:13:55 +0900
bulldog <gungle@g...> wrote:

> 1. 各controller(action)で共通的に使用する処理(Cでいうところの共通ライブラリ)を
>    作成しようとする場合、Railsではどのような方法で作成するのが一般的で
>    しょうか?
>    現在、LDAPを処理するような共通関数を検討しております。
>    この場合、Classなどを作成して、lib配下に置くことが一般的でしょうか?

自作系 は、lib 配下で require でしょうね。
私の場合、model に include/extend したいモジュールや、
ごった煮系のちょっとしたメソッド(日付や時間でよく使うフォーマットの追加
など)をまとめて詰め込んでおく場所として、misc.rb というファイルに突っ込
んでいます。

> 2. いくつかのViewで共通で使用するようなプルダウンメニュー(selectタグ)を
>    部品化したいと思っています。

view の共通部品を作る手法としては partial と components が用意されていま
す。
>    ただし、このメニューはテーブルから検索した内容にしたいと思ってます。
>    例えば、以下のような感じです。
> 
>     # 元となるテーブル。例として部署テーブル
>     create table busho (
>        id     int serial primary key,
>        name   varchar(128)
>     )
> 
>     # 部品化によって、出力される部署用のselectタグ
>     <select name="busho">
>     <option value="1000">部署A
>     <option value="2000">部署B
>     <option value="3000">部署C
>     </select>

う〜ん、わたしもこれに相当するマスター参照型のプルダウンメニューはよく作
りますが、

    @busho_list = Busho.find(:all)
    collection_select(:model_name, :busho_id, 
                      @busho_list, :id, :name_kanji) 

と、helper メソッドを使って、二行でできてしまうので、
これを部品化する発想はなかったなぁ〜。

>    上記のようなテーブル検索が絡む共通処理を作成する場合、どのように作成し、
>    どのディレクトリ(model?)に配置するのが、Railsでは一般的でしょうか?

この程度なら、各view に直接埋め込んでしまいますが、
もし、共通にするなら、lib か components でしょうね。

-- 
Hiroshi Takagi <gollum@h...>



--
ML: rails@r...
使い方: http://QuickML.com/
Web Site: http://wiki.fdiary.net/rails/
ML Archives: http://www.fdiary.net/ml/rails/

[前][次][番号順一覧][スレッド一覧]

       790 2005-12-16 08:13 [gungle@g...         ] 処理の共通化について                    
->     798 2005-12-17 04:14 ┗[gollum@h...         ]                                       
       806 2005-12-19 01:32  ┗[gungle@g...         ]                                     
       811 2005-12-19 15:18   ┗[gollum@h...         ]                                   
       814 2005-12-20 14:11    ┗[gungle@g...         ]