1

私はRailsにかなり慣れていません。

投稿が読まれた頻度を追跡して、人気順にランク付けしたいと思います。したがって、#showが呼び出されるたびに1ずつ増加 するデータベース列read_countがテーブルにあります。posts

read_countただし、管理者がサインインしていて、#showメソッドを使用して投稿をプレビューしたい場合は、をインクリメントし たくありません。

preview=trueparamsハッシュなどのカスタムparamを渡すのが最善だと思いました。次に、#showは、falseまたはnilと評価されたread_count場合にのみ増分します。previewしかし、どうすればそれを行うことができますか?preview=trueparamsハッシュに追加する正しい方法は何ですか?

または、コントローラーに#previewメソッドを実装する方がよいでしょうか。

4

3 に答える 3

2

次のようなことはどうですか:

@post.read_count.increment! unless user_signed_in? && current_user.admin?
于 2012-08-27T22:06:42.037 に答える
1

パラメータを送信する代わりに、コントローラアクション自体を介して送信しないのはなぜですか?ヒットして管理者でない場合は、カウントを増やしてください。これは、より簡単な解決策のようです。

于 2012-08-27T22:06:02.213 に答える
1

以下の回答のいずれかがおそらくより良い方法ですが、追加のパラメーターを渡す方法に関する質問に答えるには. それらを URL ヘルパーの最後に追加するだけで、既存のリンクが次のようになっている場合:

link_to 'Show', post_path(id)

それを次のように変更するだけです:

link_to 'Show', post_path(id) + '?preview=true'

于 2012-08-28T06:18:37.627 に答える