web-dev-qa-db-ja.com

Haml-違法な入れ子:プレーンテキスト内の入れ子は違法です

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

17
Arihant Godha
  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))
8
vekozlov