2016-03-29 13 views
0

私のアプリからユーザーのプロフィールを削除する機能があるとします。しかし、彼らが行く前に、私は彼らが離れる理由を記入するように頼んでいる( "あまりにも多くの電子メール"、 "もはやサービスを使用する"、 "その他"など)静的設定/参照データをRails DBに保存

私はしたいUserモデルのフィールドに去る理由を保存する - User#reason

私の質問は、列挙された理由リストをどこに保存しますか?いくつかのオプションがあり、他の人が使っていることや、それを行うための最も「Railsの方法」について助言を得ることを望んでいます。

  1. 平文としてストア - 前述したように、User#reasonに理由でフルテキストを格納します。しかし、理由のために特定のフレーズを更新するたびに、既存の値をすべて修正する必要があります。

  2. スタティック構成テーブル。 Reasonと呼ばれる静的なテーブル/モデルを作成し、理由のリストを格納します。次に、それぞれUserモデルにはreason_idへの外部キー参照があります。問題は、外部キーの依存関係のために私が選択すると簡単に理由を削除できないということです。

  3. ActiveHash - このようなもののために作られたようです。 ActiveRecordオブジェクトのように機能するメモリ内ハッシュ。しかし、IDの変更があれば(データベースに保存されていないため、コード内に格納されているので簡単に変更できます)、他のテーブルの外部キーマッピングが混乱します。

ありがとう!

答えて

0

は、私が利用可能UserReasonモデルがあるとします。

user_reasonsUserReasonモデル)という表題の表には、user_idreason_idを列として使用することをお勧めします。

User

has_one user_reason

& Reasonhas_manyuser_reasons

ユーザーがオプトアウトする前に、その理由を与えるたびに、それはuser_reasonsテーブルに格納されることができますすることができます。

関連する問題