0

私はRailsを初めて使用し、現在、クラスメート/学友が(私たちに関連する)トピック/問題についてコメントできるアプリに取り組んでおり、それらのコメントのそれぞれに賛成または反対の投票を行うことができるはずです。

「賛成票」と「反対票」の両方に独自のモデルを作成しました。

さて、データベースでは、増加できる両方の投票モデルに単一の整数が1つあるはずなので、コントローラーアクションでは... += 1になるのではないかと考えています。-または、むしろリスト/賛成票または反対票の値を表示するために .count メソッドで単純にカウントされる投票のコレクション?

4

2 に答える 2

2

Rails には、関連付けられたモデルの作成/破棄の量を自動的にカウントするための counter_cache という機能があります。これについては次のとおりです: http://guides.rubyonrails.org/association_basics.htmlセクション 4.1.2.4。DBの追加の列を介して行われます。

于 2012-05-26T17:23:21.967 に答える
1

選択するオプションは、アプリケーションの要件によって異なると思います。

  • 単一の整数
    • 投票に関連する他の情報が必要ない場合は、単純にモデルに単一の整数として保存します。
  • 投票ごとに記録
    • 誰が、いつ各投票が行われたかなど、投票とともに追加情報を保存したい場合は、投票ごとにレコードを作成できます。次に、モデルで .size を実行できます(パフォーマンス上の理由からサイズを超えるサイズをお勧めします...または、jdoeが指摘した counter_cache を使用することをお勧めします)。

そうは言っても、アプリケーションの説明からすると、賛成票と反対票に必ずしも独自のモデルが必要だとは思いません。コメント モデルに賛成票と反対票の属性を作成し、単一の整数を使用して投票数を表します。

于 2012-05-26T17:39:36.623 に答える