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

如何使用Slim语法在Rails视图中填充数组

  •  2
  • Suavocado  · 技术社区  · 10 年前

    我使用slim和一个小数组来填充一个select标记。

    第一次尝试:

    =f.select (:productline) do
        -[["productlinetest","value"],["[B] Bolted Bonnet"] ].each do |c|
            = content_tag(:option, c.first, value: c.last)
    

    这很好,但如果我想添加更多选项,我必须将它们都放在同一行。我更喜欢这样的东西:

    =f.select (:productline) do
        -[
            ["productlinetest","value"],
            ["[B] Bolted Bonnet"]
            ].each do |c|
            = content_tag(:option, c.first, value: c.last)
    

    但这行不通。

    1 回复  |  直到 10 年前
        1
  •  0
  •   Roman Kiselenko    10 年前

    将阵列移动到控制器操作中,然后使用 @variable 在视图中:

    def my_awesome_action
       @array = [["productlinetest","value"],
                 ["[B] Bolted Bonnet"]]
    end
    

    在视图中:

    = f.select (:productline) do
        - @array.each do |c|
            = content_tag(:option, c.first, value: c.last)
    

    Slim 模板引擎不允许多行表达式,如 Ruby