我有“foo”控制器,除此之外还有3个回形针附加图像。
foo.image1,foo.image2和foo.image3
在视图中呈现每次重新加载页面时刷新的随机附件的最佳方法是什么?
- EDIT ---
好的,这不是非常优雅的代码,但至少避免使用send并满足我的目的。
@a = foo.image1(:thumb)
@b = foo.image2(:thumb)
@c = foo.image3(:thumb)
@rand = ([@a, @b, @c].sample)
答案 0 :(得分:1)
在您的控制器中,您可以执行以下操作:
@image = foo.send([:image1, :image2, :image3].sample)
这样做是随机选择(采样)与图像名称对应的符号,然后将该符号发送到foo
以执行。结果存储在实例变量中,然后可以在视图中使用。
只要每次有人点击您的操作时都会执行此操作(例如,如果它处于show
操作中),那么即使刷新,它也会随机选择新图像。