18

コードがローカル マシンで動作している 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))

HAML は初めてです

4

1 に答える 1

10
  1. リンクを %td 内に配置する場合は、1 タブ右にする必要があります (td - 0 タブ、リンク - 左側から 1 タブ)。
  2. 同じ方法を使用してインデントを作成する必要があります (たとえば、常にスペースの代わりにタブを使用します)。
  3. 問題はこのコードにはないようです。それは部分的ですか、それとも他のコードの一部ですか?

通常、次のようにすると「不正なネスト」が発生するためです。

%td{ :style => 'width:10px' }
    justtext
      =link_to ....

このコードを試してください:

%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))
于 2012-11-23T06:54:35.983 に答える