如果 post.published?
.post
/ Post stuff
Run Code Online (Sandbox Code Playgroud)
除此以外
.post.gray
/ Post stuff
Run Code Online (Sandbox Code Playgroud)
我用rails helper实现了它,看起来很难看.
= content_tag :div, :class => "post" + (" gray" unless post.published?).to_s do
/ Post stuff
Run Code Online (Sandbox Code Playgroud)
第二种变体:
= content_tag :div, :class => "post" + (post.published? ? "" : " gray") do
/ Post stuff
Run Code Online (Sandbox Code Playgroud)
是否有更简单和特定于haml的方式?
UPD.特定于Haml,但仍然不简单:
%div{:class => "post" + (" gray" unless post.published?).to_s}
/ Post stuff
Run Code Online (Sandbox Code Playgroud) 我怎么能写这样的东西包含在模板中,但是在Haml中呢?
<script>
$(document).ready( function() {
$('body').addClass( 'test' );
} );
</script>
Run Code Online (Sandbox Code Playgroud) 我正在学习Rails,我看过这些模板引擎.我对他们没有经验(只有erb).
但由于我是初学者,我真的很困惑.你建议哪一个?为什么?Erb,Haml还是Slim?请告诉你理由偏爱其他人.如果您有任何其他建议,请告诉我们.
编辑:我不是在寻找胜利者.我只是想听听你对他们的看法,他们的语法,执行速度等等.
在我的Rails模板中,我想使用HAML完成最终的HTML效果:
I will first <a href="http://example.com">link somewhere</a>, then render this half of the sentence if a condition is met
Run Code Online (Sandbox Code Playgroud)
接近的模板:
I will first
= link_to 'link somewhere', 'http://example.com'
- if @condition
, then render this half of the sentence if a condition is met
Run Code Online (Sandbox Code Playgroud)
但是,您可能会注意到这会在链接和逗号之间产生一个空格.有没有实用的方法来避免这个空白?我知道有删除标签周围空格的语法,但这种语法是否只能应用于文本?我真的不喜欢额外标记的解决方案来实现这一目标.
我想让Haml使用我的Ruby on Rails项目.我是Ruby on Rails的新手,我非常喜欢它.但是,当我尝试添加一个aplication.html.haml或index.html.haml一个视图时,我只是收到错误.
我使用NetBeans作为我的IDE.
#item
Run Code Online (Sandbox Code Playgroud)
创建一个id ="item"的div
.box#item
Run Code Online (Sandbox Code Playgroud)
使用class ="box"和id ="item"创建一个div
.box#="item "+x
Run Code Online (Sandbox Code Playgroud)
使用class ="box"和注释"#="item"+ x"创建一个div
.box#
="item"+x
Run Code Online (Sandbox Code Playgroud)
抛出"非法元素:类和id必须有值."
如何将id设置为变量?
如何编写if和if- else在Haml的一个Ruby on Rails的应用程序语句?
我碰巧偶然发现了HAML,这是一种标记内容和编写HTML模板的有趣而美观的方式.
由于我使用Python和Django来满足我的Web开发需求,我想看看是否有可用于替换Django模板引擎的HAML的Python实现(或一些类似的概念 - 不必完全相同).
我使用Ruby 1.9.2和Rails 3.0.5
我有以下错误:
不兼容的字符编码:ASCII-8BIT和UTF-8
它与我认为的数据库无关.
错误是在视图中惹恼这一行(只是一个div haml调用):
#content
Run Code Online (Sandbox Code Playgroud)
全栈:
ActionView::Template::Error (incompatible character encodings: ASCII-8BIT and UTF-8):
21: -flash.each do |name, msg|
22: =content_tag :div, msg, :id => "flash_#{name}"
23: %div.clear
24: #content
25: = yield
26: = render :partial => "layouts/grid_right" if render_grid_right?
27: = render :partial => "layouts/footer"
app/views/layouts/application.html.haml:24:in `_app_views_layouts_application_html_haml___4380000789490545718_2180251300_2717546578298801795'
actionpack (3.0.5) lib/action_view/template.rb:135:in `block in render'
activesupport (3.0.5) lib/active_support/notifications.rb:54:in `instrument'
actionpack (3.0.5) lib/action_view/template.rb:127:in `render'
actionpack (3.0.5) lib/action_view/render/layouts.rb:80:in `_render_layout'
actionpack (3.0.5) lib/action_view/render/rendering.rb:62:in `block in _render_template'
activesupport (3.0.5) lib/active_support/notifications.rb:52:in `block …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种可靠的方法将HAML模板转换为等效的ERB/HTML模板?
有人见过吗?