2011-07-29 5 views
0

この関連タイプを理解するには少し助けが必要です。あまり意味がないと思われる関連

は、私が(ITEM_TYPEと項目)それITEM_TYPE

だけのカテゴリのような演技だ2つのモデルを持っているし、(タイトル)

表構造だけつのフィールドを持っている:

ITEM_TYPE:

  • id
  • タイトル
  • created_at
  • updated_atの

項目:

  • タイトル
  • 価格
  • 他の無関係なフィールドをitem_type_id
    • ID ...

    基本的に私はこのモデル間の単純な関連付けをしようとしています。

    class ItemType < ActiveRecord::Base 
        belongs_to :item 
    end 
    
    class Item < ActiveRecord::Base 
        has_one :item_type 
    end 
    

    私はアイテムを作成し、それを保存し、私はそれを表示するためにフェッチしていたときに、それはちょうど、item_type.idの代わりにitem_type.titleを表示する必要がありますか?

    foreign_keyを持つテーブルには常にbelongs_toが読み込まれていますが、この場合、私にはあまり意味がありません。また、has_oneをItemTypeクラスに置くこともできますItemsクラスへのbelongs_toは、この方法で動作します。私が持っているコントローラのコードで

    def show 
        @item = Item.find(params[:id], :include => 'item_type') 
    end 
    

    とビューは、私が間違ってやっているだけ

    <%= debug @item %> 
    

    で作成した関係を見るために目に見えるすべきですか?

  • +0

    showメソッドに適切なIDを渡していますか?例えば。 'http:// localhost/item/show/24'または' show?id = 24'?アイテムを作成するときにItemTypeをアイテムに割り当てましたか? '= item.new(:title =>" item type ")); a = Item.new(:title =>" item title "、price => 42、:type => ItemType.new a.save! '? – Dr1Ku

    +0

    今、ちょうど今編集しました。編集コメントが見えますか? –

    +1

    ああ、それを忘れる。私はインクルードパラメータを削除し、うまくいきます。ビュー上で@ item.item_type.titleを使って表示するだけです。ありがとうございました! –

    答えて

    0

    私はあなたがあなたの例では、外部キーが含まれているモデルにbelongs_toのを配置する必要があります覚えている:

    class ItemType < ActiveRecord::Base 
        has_one :item 
    end 
    
    class Item < ActiveRecord::Base 
        belongs_to :item_type 
    end 
    

    documentationを参照してください。

    +0

    yup!私はそれを知っていた。私はちょうどビュー側に希望のデータを表示するための正しい方法が欠けていた。私はこの答えを正しいと考えています。ありがとうございました。 –