【问题标题】:rails haml ugly weird behaviourrails haml 丑陋怪异的行为
【发布时间】:2011-03-18 02:46:49
【问题描述】:

我有以下帮手:

def feeder value=true
  if feeder? == value
    haml_tag :span, :<, :class => 'selected' do
      yield
    end
  else
    yield
  end
end

以及以下视图:

- feeder(false) do
  = link_to 'Leda', :root

这在 haml 非丑陋模式下按预期工作(开发环境 == haml 缩进代码)。 但是在生产模式下(例如haml丑陋的渲染)我得到了这个html:

<h1> 
<a href="/leda/">Leda</a> 
<!-- THIS SHOULD NOT BE HERE >>> -->
<!DOCTYPE html> 
<html> 
<head> 
<meta charset='utf-8'> 
<title>Feeder</title> 
<meta name="csrf-param" content="authenticity_token"/> 
<meta name="csrf-token" content="8kp4xt6ZJU2nL5uLgVBW6BcB/RTA75QwynKvZTMtNF8="/> 
<link href="/leda/stylesheets/jquery-ui/smoothness/jquery-ui.css?1297978005" media="screen" rel="stylesheet" type="text/css" /> 
<link href="/leda/stylesheets/admin.css?1298951622" media="screen" rel="stylesheet" type="text/css" /> 
<script src="/leda/javascripts/jquery.js?1297978005" type="text/javascript"></script> 
<script src="/leda/javascripts/jquery-ui.js?1297978004" type="text/javascript"></script> 
<script src="/leda/javascripts/rails.js?1297978005" type="text/javascript"></script> 
<script src="/leda/javascripts/application.js?1300153136" type="text/javascript"></script> 

</head> 
<body> 
<div id='wrapper'> 
<div id='header'> 
<h1> 
<a href="/leda/">Leda</a> 
<!-- <<< END -->
 &raquo; 
<span class='selected'><a href="/leda/servers/GVM-S1">gvm1</a></span> 
</h1>

用这个替换else子句:

else
  haml_tag :span do
    yield
  end
end

解决了问题,但我无法理解为什么/如何。更令人困惑的是,它只在haml丑陋的渲染模式下失败。

【问题讨论】:

    标签: ruby-on-rails ruby haml


    【解决方案1】:

    为什么不像这样在视图中完成所有操作?

    %span{:class => blah.feeder? && "selected"}= link_to 'Blah', blah
    

    (关于这方面的 haml 文档是正确的 here。)

    您的助手版本似乎不必要地复杂。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      相关资源
      最近更新 更多