0

結合テーブル ( ) を使用して最初の HABTM テーブル (hostsおよび) をセットアップしました。私のテストは正常に機能しているようで、Web ページも同様です。 ownershosts_owners

そこで、次の質問は、新しいデータとそれぞれの関係 (テーブル情報を結合する) を挿入する方法です。新しいデータを挿入する主な方法は 2 つあります。

  1. プログラムによって、コンテンツが他のソースから取得され、テーブルに保存されます
  2. 手動で、ユーザーは Web ページを使用して新しいエントリを追加します。

では、上記のそれぞれについて、ホストが追加されるたびに少なくとも1人の所有者も追加されることを保証する「レール」の方法は何ですか? (逆もまた然りです。) 私が見つけたすべての本や記事は、テーブルとモデルを作成する時点で止まっているようです。

4

1 に答える 1

0

検証コールバックを使用します。これはデータベーストリガーに似ていますが、Railsモデルに属しています。

例えば。(これが機能するかどうかわからない場合は、試してみる必要があります):

class Host < ActiveRecord::Base
  validates :has_at_least_one_owner?

  def has_at_least_one_owner?
    owners.any?
  end
end 

PS:代わりに使用できるかもしれませんがvalidates_presence_of、HABTMで動作するかどうかはわかりませんが

于 2012-05-23T12:02:35.373 に答える