Haml -Illegal nesting:在纯文本中嵌套是非法的

Ari*_*dha 17 haml ruby-on-rails ruby-on-rails-3

我在使用HAML时我的代码中遇到了一个奇怪的错误,我的代码在我的本地机器上运行,但是当我部署它时,我收到以下错误

ActionView :: Template :: Error(非法嵌套:在纯文本中嵌套是非法的.):

我的代码看起来像这样

  %td{ :style => 'width:10px' }
= link_to('Dashboard',   dashboard_admin_clients_account_path(client)) if client.is_member?
= link_to('Edit',   edit_admin_clients_account_path(client))
- if client.removed_at.nil?
  = link_to('Delete', admin_clients_account_path(client), :method => :delete, :confirm => 'Are you sure you want to delete')
- else
  = link_to('Restore', restore_admin_clients_account_path(client))
Run Code Online (Sandbox Code Playgroud)

我是HAML的新手

vek*_*lov 8

  1. 如果您希望链接位于%td内,则它们应该是1个选项卡(td - 0选项卡,链接 - 左侧的1个选项卡)
  2. 您应该使用相同的方法来制作缩进(例如,始终使用制表符的空格).
  3. 看起来问题不在此代码中.它是partitial还是其他代码的一部分?

因为"非法嵌套"通常会在您这样做时发生:

%td{ :style => 'width:10px' }
    justtext
      =link_to ....
Run Code Online (Sandbox Code Playgroud)

试试这段代码:

%td{ :style => 'width:10px' }
    = link_to('Dashboard',   dashboard_admin_clients_account_path(client)) if client.is_member?
    = link_to('Edit',   edit_admin_clients_account_path(client))
    - if client.removed_at.nil?
        = link_to('Delete', admin_clients_account_path(client), :method => :delete, :confirm => 'Are you sure you want to delete')
    - else
        = link_to('Restore', restore_admin_clients_account_path(client))
Run Code Online (Sandbox Code Playgroud)