0

我有“foo”控制器,除此之外还有 3 个回形针附加图像。

foo.image1、foo.image2 和 foo.image3

在视图中呈现每次重新加载页面时都会刷新的随机附件的最佳方法是什么?

- 编辑 - -

好的,这不是很优雅的代码,但至少避免使用 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 回答