具有红宝石功能,可以提取随机值
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肯定会沿引号传递。
如何克服?
答案 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
,但这是一个错误。使用此方法时,我喜欢隐式转换为符号。我不确定是否有性能优势。只是风格问题。