0

私は「foo」コントローラーを持っています。これには、特に3つのペーパークリップが添付された画像があります。

foo.image1、foo.image2、およびfoo.image3

ページがリロードされるたびに更新される1つのランダムな添付ファイルをビューにレンダリングするための最良の方法は何ですか?

- 編集 - -

わかりました。これはあまり洗練されたコードではありませんが、少なくともsendの使用を避け、私の目的を果たします。

    @a = foo.image1(:thumb) 
    @b = foo.image2(:thumb)
    @c = foo.image3(:thumb)

    @rand = ([@a, @b, @c].sample)
4

1 に答える 1

1

コントローラでは、次のようなことができます。

@image = foo.send([:image1, :image2, :image3].sample)

これは、画像の名前に対応するシンボルをランダムに選択(サンプリング)し、そのシンボルを送信しfooて実行することです。結果はインスタンス変数に保存され、ビューで使用できます。

誰かがあなたのアクションをヒットするたびにこれが行われる限り(たとえば、showアクションなどの場合)、更新時であっても、常に新しい画像がランダムに選択されます。

于 2012-08-31T14:37:10.583 に答える