【问题标题】:ruby haml don't get the results I want (beginner)ruby haml 没有得到我想要的结果(初学者)
【发布时间】:2013-10-29 08:28:48
【问题描述】:

我正在为 haml 没有在正确的位置注入内容而苦苦挣扎,这是 haml 的一部分:

%div.form-group{:id => 'container'}
- if !@data.nil?
  %p= t('users.data_name')
  = link_to t('users.delete'), 'javascript:void(0)', :class => 'delete', :data => {:id => @data.id}
  %div.holder.thick
    = image_tag @data.path
- else
  = link_to t('users.upload'), 'javascript:void(0)', :class => 'btn btn-large'
  %div.holder
    = image_tag '/assets/missing_image.png'

问题是holderholder thick 不在我的容器内,而是在外面。为什么是这样?我没有正确对齐什么?

【问题讨论】:

标签: ruby-on-rails ruby haml


【解决方案1】:

是的,如果if 的内容要进入#container,则应该缩进。

#container.form-group
  - if !@data.nil?
    %p= t('users.data_name')
    = link_to t('users.delete'), 'javascript:void(0)', :class => 'delete', :data => {:id => @data.id}
    .holder.thick
      = image_tag @data.path
  - else
    = link_to t('users.upload'), 'javascript:void(0)', :class => 'btn btn-large'
    .holder
      = image_tag '/assets/missing_image.png'

【讨论】:

    【解决方案2】:

    如果您的容器是 %div.form-group,那么您只需缩进其余部分,以便 haml 了解您的内容应该放在该 div 内

    所以它看起来像这样

    %div.form-group{:id => 'container'}
      - if !@data.nil?
        %p= t('users.data_name')
        = link_to t('users.delete'), 'javascript:void(0)', :class => 'delete', :data => {:id => @data.id}
        %div.holder.thick
          = image_tag @data.path
      - else
        = link_to t('users.upload'), 'javascript:void(0)', :class => 'btn btn-large'
        %div.holder
          = image_tag '/assets/missing_image.png'
    

    【讨论】:

      猜你喜欢
      • 2022-09-29
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多