0

私は2つのオブジェクトを持っています。

board.rb

class Board
  include Mongoid::Document
  has_many :posts, :autosave => true, dependent: :destroy
  field :collected, :type => Array, :default => []
end

post.rb

class Post
  include Mongoid::Document
  belongs_to :board
end

デフォルトで作成されるリレーションシップに加えて、親オブジェクト( Board )の投稿を保存または参照するためのフィールドを作成したいと思います。

オブジェクトを複製せずに参照を作成することは可能ですか?デフォルトで作成される関係と同様に?それを行うための最適な方法は何ですか?

配列フィールド(収集されたフィールド)を作成し、すべての投稿のIDを入力しますか、それともより良い方法がありますか?

重複するオブジェクトは必要ありません。元のオブジェクトの参照が必要です。その後、whereクエリまたはfindクエリを使用してこのオブジェクトを検索します。

どうすればいいですか?

ありがとうございました!

4

1 に答える 1

0

Boardpostsオブジェクトは配列で応答します。参照されるオブジェクトのIDのみの配列が必要な場合は、次を呼び出しますboard.posts.collect {|p| p.id}。これを頻繁に使用する必要がある場合は、モデルでそれを返すメソッドを定義できます。

于 2012-06-18T08:51:58.783 に答える