【问题标题】:How to define class in and Arbre block?如何在和 Arbre 块中定义类?
【发布时间】:2021-02-24 17:57:25
【问题描述】:

对不起,如果这是一个愚蠢的问题,但我想知道如何在 Arbre 块中定义一个类。我试图简单地将逗号放在块之后,但 Ruby 指责它有错误(特别是:“unexpected token tCOMMA (Using Ruby 2.3 parser; configure using TargetRubyVersion parameter, under AllCops) (error:Lint/Syntax) ")。

这就是我尝试的方式:

div {
    h4 "Title", class: "title"
    span "Info", class: "info"
}, class: "my_div"

这会导致上述错误。但我真的不知道有什么其他方法可以解决这个问题。任何帮助将不胜感激!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 activeadmin arbre


    【解决方案1】:

    Arbre 定义是 ruby​​ 方法,具有您必须遵循的基本语法。首先是位置参数,然后是关键字参数,最后是块。在您的示例中,您以相反的方式执行此操作,因此您传递一个块然后传递一个关键字参数。要解决此问题,只需更改为:

    div class: "my_div" {
        h4 "Title", class: "title"
        span "Info", class: "info"
    }
    

    相当于:

    div(class: "my_div") {
        h4("Title", class: "title")
        span("Info", class: "info")
    }
    

    【讨论】:

    • 非常感谢!!
    • 我测试了它,不幸的是它产生了一个问题。现在它无法识别我从外部获得的变量(我使用这个变量来获取我想要显示的数据)。但其他一切都有效,所以你的答案基本上是正确的!所以谢谢你
    • documentation 中,他们提到了这个context,它可以用来将局部变量传递给组件。如果更适合您的用例,还有一个选项可以在控制器中传递实例变量。
    • 不用了,我发现你建议的第二个有效!
    猜你喜欢
    • 1970-01-01
    • 2019-05-01
    • 2022-08-17
    • 2020-06-28
    • 2020-08-09
    • 2021-10-27
    • 2017-06-10
    • 1970-01-01
    • 2017-05-20
    相关资源
    最近更新 更多