【问题标题】:Building option list with haml使用 haml 构建选项列表
【发布时间】:2014-07-05 16:31:55
【问题描述】:

我正在尝试在 Sinatra 中使用 HAML 创建一个带有选项的选择控件。我的@ages 数组中的每个值都应该有一个选项。我通过打印出来验证了@ages 实际上在视图中。但是,我的选择标签没有显示这些@ages。

%form
  %label='Portfolio Type'
  %select{name: :portfolio_type}
    %option{value: :cash}='Cash'
    %option{value: :securities}='Securities'
  %br
  %label='Current Age'
  %select{name: :current_age }
  - @ages.each do |age|
    %option{:name => age, :value=> age}="#{age}"
  %br
  %label='Current Savings'
  %input

  %input

  %input

下面是正在生成的 html。我可以看到选择标签在选项之前关闭。

<form>
        <label>Portfolio Type</label>
        <select name='portfolio_type'>
          <option value='cash'>Cash</option>
          <option value='future_advisor'>Future Advisor</option>
        </select>
        <br>
        <label>Current Age</label>
        <select name='current_age'></select>
        <option value='25'>25</option>
        <option value='26'>26</option>
        <option value='27'>27</option>
        <option value='28'>28</option>
        <option value='29'>29</option>
        <option value='30'>30</option>
        <option value='31'>31</option>
        <option value='32'>32</option>
        <option value='33'>33</option>
        <option value='34'>34</option>
        <option value='35'>35</option>
        <option value='36'>36</option>
        <option value='37'>37</option>
        <option value='38'>38</option>
        <option value='39'>39</option>
        <option value='40'>40</option>
        <option value='41'>41</option>
        <option value='42'>42</option>
        <option value='43'>43</option>
        <option value='44'>44</option>
        <option value='45'>45</option>
        <option value='46'>46</option>
        <option value='47'>47</option>
        <option value='48'>48</option>
        <option value='49'>49</option>
        <option value='50'>50</option>
        <br>
        <label>Current Savings</label>
        <input>
        <input>
        <input>
      </form>

【问题讨论】:

  • 可以粘贴生成的html吗?
  • @mus 感谢您的建议。我更新了问题。您可以看到选择标签在选项之前被关闭。不知道为什么。

标签: sinatra haml ruby-2.0


【解决方案1】:

正如您所注意到的,选择标签在列出选项之前已关闭。 那是因为您没有缩进 - @ages.each do |age| 语句。

改变这个:

%select{name: :current_age }
- @ages.each do |age|
  %option{:name => age, :value=> age}="#{age}"

到这里:

%select{name: :current_age }
  - @ages.each do |age|
    %option{:name => age, :value=> age}="#{age}"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    相关资源
    最近更新 更多