提取随机属性并在视图中渲染

时间:2018-09-04 22:38:22

标签: ruby-on-rails ruby

具有红宝石功能,可以提取随机值

first_random = ["alt_1", "alt_2", "alt_3", "alt_4", "alt_5", "alt_6"].sample

类属性为alt_1, alt_2, alt_3, alt_4, alt_5, alt_6, name, created_at, updated_at

这些值表示类的属性。没有引号将它们标识为字符串AFAIK,就无法在数组中描述它们。目标是在视图中调用此随机属性。但是,

@text.first_random

生成方法丢失错误,因为ruby肯定会沿引号传递。

如何克服?

2 个答案:

答案 0 :(得分:4)

在Rails中,您可以通过模型的attributes方法访问模型的属性,例如:

@text.attributes['alt_1']

要根据您的代码获取随机属性:

first_random = %w[alt_1 alt_2 alt_3 alt_4 alt_5 alt_6].sample

@text.attributes[first_random]

答案 1 :(得分:3)

我会尝试添加

@text.send(first_random.to_sym)

* edit:.send()将使用字符串或符号。我之前写过.to_s,但这是一个错误。使用此方法时,我喜欢隐式转换为符号。我不确定是否有性能优势。只是风格问题。