0

私は2つの異なるモデルを持っています。

項目モデル

class Item < ActiveRecord::Base
    belongs_to :category
    attr_accessible :make, :model, :name, :purchasedfrom, :qrcode, :serialnumber, :category_id
end

イベント モデル

class Event < ActiveRecord::Base
    belongs_to :category
    attr_accessible :name, :location_id, :category_id
end

次のことを行う方法がわかりません。

  • Eventには、 にある複数のItemがありEventます。
  • Event履歴は、特定のイベントから引き続き表示さItemsれます。

  • イベントのアイテムを表示します: localhost/event/:id/items

私は私の人生のためにこれを理解することはできません。この問題で何らかの方向性を得ることができれば、非常に感謝しています! ご協力いただきありがとうございます。

:throughここで使用する必要があると思われる使用法を見てきました。

4

3 に答える 3

1

私があなたの質問を正しく理解していれば、ここで Event モデルにこのようなものを書くことができます。

class Event
  def items
    category.items
  end
end

次に、コントローラーで、

@event = Event.find(params[:id])
@items = @event.try(:items) 
于 2012-11-23T14:56:07.247 に答える
0

あなたがやりたいことは次のとおりだと思います:

class Item < ActiveRecord::Base
    belongs_to :event
end  

イベントの場合:

class Event < ActiveRecord::Base
    has_many :items
end

次に、次のように呼び出して、イベントのアイテムを表示できるようにする必要があります。

@event = Event.find_by_id(:id)
@event.items.all
于 2012-11-23T15:06:54.790 に答える
0

1 つが複数持つことができる場合Categoryは、それが 1 つだけにあったものを正確に知ることができるように追加するEvents必要があると思います。(そしてその場合、そのための関係を追加します)。event_idItemItemsEvent

または、複数にできる場合はEvent、 andItemと has_and_belongs_to_manyの間のテーブルを結合しますItemEvents

編集:

そのような場合は、 table events_items、リレーションhas_and_belongs_to_many :items(Eventおよび) を追加:eventsし、 のドキュメントを参照してください。Itemhas_and_belongs_to_many

それ以外の場合はItems、ある特定のものを探している場合、調査しているすべてのものと同じものをすべてEvent見つけることができます。Items EventsCategoryEvent

于 2012-11-23T15:04:44.863 に答える