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

rails:806

From: bulldog <gungle@g...>
Date: Mon, 19 Dec 2005 09:32:12 +0900
Subject: [rails:806] Re: 処理の共通化について

菊池です。

高木さん、ご回答ありがとうございます。

> > 1. 各controller(action)で共通的に使用する処理(Cでいうところの共通ライブラリ)を
> >    作成しようとする場合、Railsではどのような方法で作成するのが一般的で
> >    しょうか?
> 自作系 は、lib 配下で require でしょうね。
> 私の場合、model に include/extend したいモジュールや、
> ごった煮系のちょっとしたメソッド(日付や時間でよく使うフォーマットの追加
> など)をまとめて詰め込んでおく場所として、misc.rb というファイルに突っ込
> んでいます。

なるほどですね。了解致しました。

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

partialはなんとなく理解できています。componentsはまだ勉強できていないので、Rails本(英語)で調査してみます。

> >    ただし、このメニューはテーブルから検索した内容にしたいと思ってます。
> >    例えば、以下のような感じです。
> >
> >     # 元となるテーブル。例として部署テーブル
> >     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 でしょうね。

了解しました。ありがとうございます。

丁寧なご回答感謝いたします。
今後ともよろしくお願い致します。

--
bulldog <bulldog@t...>
web :    http://thanks-gunpla.com
blog :    http://blog.thanks-gunpla.com
search: http://gungle.tk

--
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...         ]