0

投稿ビュー: 0 として初期化され、ユーザーが投稿を読むと増加します。ユーザーが同じ投稿を読んだ場合、インクリメントされるべきではありません。

ポスト ビュー機能を実装するために、2 つのオプションを考えました。

  1. 各投稿には、投稿を読んだすべてのユーザーを一覧表示するテーブルがあります。PostController では、postview 関数は最初にテーブル内でユーザーを見つけようとし、ユーザーが見つからない場合はビューの数を増やします。

  2. クッキーを使用します。ユーザーが投稿を読むたびに、その投稿に固有の Cookie をユーザーに渡します。たとえば、cookie[:postId] = 1 です。したがって、ポスト コントローラーのビュー関数は、ビューの数を増やす前に、ユーザーが特定の投稿の Cookie を持っているかどうかを簡単に確認できます。

どちらのオプションが良いかわかりません。データベースのメモリを節約できるので、適切であれば2番目のオプションの方が良いと思います。しかし、このオプションはネットワーク トラフィックの点で悪いのでしょうか? これら 2 つのオプションがどちらも有効かどうか、またはどちらが効率的に優れているかは、100% 確信が持てません。

私はあなたの助けに感謝します。

4

1 に答える 1

0

印象派を使用する (またはアイデアを得る): https://github.com/charlotte-ruby/impressionist

次に、次のようにレコードで一意のインプレッションを取得できます。

# only record impression if the request has a unique combination of type, id, and session
impressionist :unique => [:impressionable_type, :impressionable_id, :session_hash]
于 2012-11-12T05:51:27.533 に答える