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

rails:722

From: Hiroshi Takagi <gollum@h...>
Date: Sat, 03 Dec 2005 00:44:46 +0900
Subject: [rails:722] Re: ActiveRecordでのPrimaryKeyについて

高木宏です。


On Fri, 2 Dec 2005 20:14:55 +0900
bulldog <gungle@g...> wrote:

> 例えば、以下のようなTable構造がある時に、
> ActiveRecordを適用するには、どのようにすればよいでしょうか?
> 
> // 社員テーブル
> create table shain (
>     shain_id        int primary key,  // 社員ID
>     busho_id       int,                    // 部署テーブルへのFK
>     shain_name   varchar(64),
>     ....
>    constraint abc forign key (busho_id) references busho(busho_id)
> )
> 
> // 部署テーブル
> create table busho (
>     busho_id      int primary key,  //  部署ID
>     busho_name varchar(128),
>     ....
> )

class Shain <ActiveRecord::Base
  set_table_name shain
  set_primary_key "shain_id"

  belongs_to :busho,
             :class_name =>  "Busho",
             :foreign_key => "busho_id"
end

class Busho <ActiveRecord::Base
  set_table_name busho
  set_primary_key "busho_id"
end

としておけば、

@shain = Shain.find(1)
puts @shain.busho.busho_name

で、この社員の部署名が出力されるはず。

というのは、
既存のテーブルからの検索に set_table_name を使ったことはありますが、
set_primary_key は使ったことありません。

http://api.rubyonrails.com/
のActiveRecord::Base の項や、
Agile Web Development with Rails の
p200 Tables and Classes
p230 belongs_to() Declaration
を参照してください。

no 検証につきあしからず。
ご参考までに。

-- 
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/

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

       720 2005-12-02 12:14 [gungle@g...         ] ActiveRecordでのPrimaryKeyについて      
       721 2005-12-02 16:41 ┣[toykyo@t...         ]                                       
->     722 2005-12-02 16:44 ┗[gollum@h...         ]                                       
       728 2005-12-04 05:20  ┗[gungle@g...         ]                                     
       743 2005-12-05 10:04   ┗[someeda@g...        ]                                   
       744 2005-12-05 11:37    ┗[gungle@g...         ]                                 
       745 2005-12-05 13:46     ┗[someeda@g...        ]                               
       750 2005-12-06 13:42      ┗[gungle@g...         ]