代码之家  ›  专栏  ›  技术社区  ›  Jerome

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

  •  1
  • Jerome  · 技术社区  · 6 年前

    使用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 回复  |  直到 6 年前
        1
  •  3
  •   Verty00    6 年前

    我会尝试添加

    @text.send(first_random.to_sym)

    *编辑: .send() .to_s 但那是个错误。我喜欢在使用此方法时隐式转换为符号。我不确定是否有性能优势。只是风格问题。

        2
  •  5
  •   Stefan    6 年前

    在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]