2012-11-23 7 views
16

Jestem stoi dziwny błąd w moim kodu podczas korzystania haml gdzie mój kod działa na moim komputerze lokalnym, ale kiedy jestem wdrażania go otrzymuję następujący błądhaml -Illegal gniazdowania: zagnieżdżanie w ciągu zwykłego tekstu jest nielegalne

actionView :: Template :: Error (Illegal gniazdowania: zagnieżdżanie w ciągu zwykłego tekstu jest nielegalne.):

Mój kod wygląda następująco

%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)) 

Jestem nowy haml

+0

miałem pewne problemy ze znalezieniem przyczyny tego problemu ponieważ błąd był wewnątrz częściowego renderowania za pomocą 'render', ale ślad stosu wskazywał na obiekt nadrzędny. –

Odpowiedz

7
  1. Jeśli chcesz linki się wewnątrz% td, powinny one być 1 Tab Righter (TD - 0 zakładki, linki - 1 karty z lewej strony)
  2. należy użyć tej samej metody, aby wcięcia (na przykład zawsze używaj tabad spacji).
  3. Wygląda na to, że problemu nie ma w tym kodzie. Czy jest częścią lub częścią jakiegoś innego kodu?

Ponieważ 'nielegalne zagnieżdżanie' zwykle się dzieje, gdy robisz to tak:

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

Spróbuj kod:

%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)) 
+0

tak to jest częścią mojego częściowego, ale kod działa dobrze na mojej lokalnej maszynie –

+0

czy możesz napisać kod poza wymienionym? – vekozlov