0

まず、これがあまりにも初心者の質問である場合はお詫び申し上げます。空き時間にしかコーディングできないので、すべてのプロジェクトでゼロから再学習することがよくあります。

Person属性namebirth-date、およびを持つクラス を持っているgenderので、たとえば、24 歳の男性のマイケルと 17 歳の女性のベリンダを作成できます。

ただし、年齢と性別に基づいてこれらの人々に自動的に割り当てる必要がある、事前定義された非表示の属性が他にもあります。それらは作成時に人間によって定義されたものではなく、後でユーザーが編集することはできません。

したがって、たとえば、隠し属性favorite-bookとを持つことができます。それらは、 が 18 歳未満の男性、18 歳から 40 歳の男性、または 40 歳以上の男性であるfavorite-movieかによって異なります。Personまたは 18 歳未満の女性、18 ~ 40 歳の女性、または 40 歳以上の女性。

これについてどうすればよいですか?これらの属性をPersonプロファイルで作成する必要がありますが、インターフェイスには表示せず、入力に応じて自動的に入力する必要がありますか? それとも、「カテゴリ」のようなものとして他の属性を作成し、それらの 1 つに人々を割り当てますか? インターフェイスでこの情報を頻繁に使用する必要があることに注意してください。年齢が上がるにつれて、ユーザーは自動的にグループを変更する必要があります。

また、Rails ではこれをどのように行うのでしょうか? 「ハッシュを使用する」ように誰かに言われましたが、このアプローチの本質についてはよくわかりません。

4

1 に答える 1

1

あなたの最初の提案はうまくいくはずだと思います。この余分なデータが精巧または巨大である場合を除き、 Person モデルに保存しても問題ありません。このようなものの実装は次のようになります。

class Person < ActiveRecord::Base
  after_validation :assign_favorites, :on => :create

  def assign_favorites
    if self.age < 18 && self.sex == 'male'
      self.favorite_book = 'Hunger Games'
    elsif self.age >= 18 && self.sex == 'male'
      ...
    end
  end
end
于 2012-09-21T16:19:53.107 に答える