そのため、2つのオブジェクト-Article(Article)とCategory(Category)があります。 1つの記事が異なるカテゴリに属し、1つのカテゴリに複数の記事が含まれる場合があります。 すぐにいくつかのカテゴリを作成します。
class Article include DataMapper::Resource property :id, Serial property :name, String has n, :categories, :through => Resource end class Category include DataMapper::Resource property :id, Serial property :name, String has n, :articles, :through => Resource end category_d = Category.new category_d.name = " " category_d.save category_f = Category.new category_f.name = "" category_f.save category_v = Category.new category_v.name = "" category_v.save category_r = Category.new category_r.name = "" category_r.save
私たちは記事「Gerard Depardieu」を作成することを決定し、「Acting Actors」、「French」などのいくつかのカテゴリに含まれることを決定しました。
article = Article.new article.name = " " article.save category_d = Category.first(:name => " ") category_f = Category.first(:name => "") article.categories << category_d article.categories << category_f article.save
しばらくして、変更を加えることにしました-カテゴリ「演技俳優」から記事を削除し、カテゴリ「ワインメーカー」に追加し、カテゴリ「ロシア人」に追加します。
そして、ここで最も興味深いことは、マニュアルで説明されているように行うことができるためです-不要な接続を手動で削除し、新しい接続を追加しますが、はるかに簡単に行うことができます-必要な接続の配列を割り当てるだけです。
article = Article.first(:name => " ") category_v = Category.first(:name => "") category_r = Category.first(:name => "") category_f = Category.first(:name => "") article.categories = [category_v, category_r, category_f] article.save
私の説明が役に立つことを願っていますが、だれかが簡単にオプションを知っているなら、コメントで教えてください。