ブログとアイテムのリレーション

テストはまだなんだかうまくいかないところもありますが,RadRailsからのコンソールの使い方がやっと分かったので,そちらでテスト。一応リレーションの設定は動いているようです。アイテムとブログの場合はアイテムがブログにbelongs_to,ブログから見るとアイテムをhas_manyするという関係なので,以下のようにしました。

class Item < ActiveRecord::Base
  set_primary_key :inumber
  set_base_name :item
  belongs_to :blog, :foreign_key => 'iblog'
end

class Blog < ActiveRecord::Base
  set_primary_key :bnumber
  set_base_name :blog
  has_many :items, :class_name=>'Item' ,:foreign_key => 'iblog'
end

両方にiblogを書くのがなんだか解せない感じもしますが,一応動いているのでいいことにしておきます。これで例えばブログからだったら
blog = Blog.find(1)
とか
blog = Blog.find(:first, :conditions=>"bshortname = 'test'")
でブログ・オブジェクトを獲得した後
blog.items
で,アイテムの配列が得られます。
逆にアイテムからだったら
item.blog
でブログ・オブジェクトにアクセスできます。
モデルに関してはこれで他のテーブルのモデル作成とリレーションを設定していけばいいはず。

追記
blog = Blog.find_by_bshortname("test")
でもブログ・オブジェクトが獲得できるはずです。


30 Oct, 2007 | General | | Andy
« Prev item - Next Item »
---------------------------------------------

Comments


No comments yet. You can be the first!


Leave comment

© 2007 yoursite.com | Designed by DesignsByDarren
Ported to Nucleus CMS: Suvoroff