0

連絡先というモデルがあります。

連絡先は、「悪い、肯定的な、間違った...」というさまざまなステータスを持つことができます。

これらのステータスは時間の経過とともに変更する必要がある場合がありますが、すべての連絡先で同じオプションです。

このようにモデル化する必要があります:

Contacts.rb

belongs_to :status_contact

StatusContacts.rb
has_many :contacts

次に、テーブルにステータスのタイプを手動で入力しますか?

次に、Ajaxを使用して値に対応するボタンをクリックし、連絡先の値を更新します。

4

3 に答える 3

1

ステータスの値が常に、選択した可能な回答のセットに制限されるようにしようとしているようです。それがあなたがやろうとしているすべてであるならば、別のテーブルの特別な必要はありません。ここでは、代わりにActiveRecord検証の魔法を使用できます。

まず、:statusというContactの文字列データベース列を作成します。

次に、検証を使用して、値が必要な値に制限されていることを確認できます。Rails 3では、次のように実行できます。

validate :status, :inclusion => { :in => %w( bad positive wrong ) }

(Rails 2を使用している場合は、代わりに#validates_inclusion_ofを使用してください。)

ActiveRecordでは、検証は保存する前にオブジェクトの値が有効であることを確認します。すべての検証に合格するまで、オブジェクトをデータベースに永続化することを拒否します。

于 2010-09-29T21:36:06.963 に答える
0

あなたの名前は少し奇妙だと思います— <code> ContactStatusは私には少しいい感じです—しかし、これはあなたが望むものを達成するための一般的な考えだと思います。

于 2010-09-29T21:45:58.397 に答える
0

まだ明確な答えはありません---ユーザーがアプリケーション全体で使用されるステータスのタイプを追加および変更できるようになるため、このテーブルを使用する必要があると思います。

于 2010-10-04T00:20:39.440 に答える