使用js.haml模板中的haml_tag结果的缩进错误

时间:2014-03-10 17:44:15

标签: ruby-on-rails haml ujs

在我的users_helper中,我有以下方法:

users_helper.rb

def status(user)
   if user.active?
      capture_haml do
         haml_tag 'span.status' do 
            haml_concat "active"
         end
      end
   else
      capture_haml do
         haml_tag 'span.status' do 
            haml_concat "inactive"
         end
      end
   end
end

然后我有一个远程链接来更改用户的状态,因此如果状态发生变化,我想将span.status替换为我status methodusers_helper返回的结果

change_status.js.haml

- unless @user.errors.any? 
   plain:
      $("span.status").html("#{status(@user)}");

但这似乎不起作用,当我用firebug检查错误时我有这个:

Inconsistent indentation: 1 tab used for indentation, but the rest of the document was indented using 2 spaces.

1 个答案:

答案 0 :(得分:1)

change_status.js.haml中,您在整个文档中使用two个空格缩进了代码,但在一个地方使用了tab

确保您的Haml文件中的缩进统一Don't mix-match,在整个文档中使用two个空格,或在整个文档中使用tab。选择一个并坚持下去。

修改

另外,使用status转义escape_javascript方法的结果。