2012-02-28 4 views
0

У меня есть javascript, который я хотел бы выполнить, только если пользователь зарегистрировался в моем приложении rails. Я установил страницу показа пользователей следующим образом:Условное выполнение Javascript в Rails View

<table class="profile" summary="Profile information"> 
    <tr> 
    <td class="main"> 
     <h1> 
     <%= gravatar_for @user %> 
     <%= @user.name %> 
     </h1> 
     <%= render 'follow_form' if signed_in? %> 
     <% end %> 
    </td> 
    <td class="sidebar round"> 
     <strong>Name</strong> <%= @user.name %><br /> 
     <strong>URL</strong> <%= link_to user_path(@user), @user %><br /> 
    </td> 
    </tr> 
</table> 


<% if signed_in? %> 

<div id="app-body"> 
<script type="text/javascript"> 
document.write("Hello World") 
</script> 
</div> 

<% end %> 

, где signed_in? это метод удобства, который возвращает логическое значение, если пользователь зарегистрирован или нет. Вопрос в том, когда я пытаюсь загрузить эту страницу, я получаю ошибку в одной строке мимо конец файла:

syntax error, unexpected keyword_ensure, expecting $end 

Извлеченные источника (около линии № 48):

45: </div> 
46: 
47: <% end %> 

Does кто-нибудь знает, как я могу исправить эту ошибку? Все, что я нахожу при поиске, это проблемы с отступом HAML, но здесь я использую erb, поэтому отступы не должны иметь значения.

+2

согласно вашему коду, ничего плохого. Можете ли вы проверить свой файл erb, если какой-либо блок не закончился должным образом. –

+0

Я обновил свой код, чтобы показать всю страницу, я считаю, что все блоки закрыты. –

ответ

1

есть дополнительный конец в вашем коде после <% = render 'follow_form', если signed_in? %> удалите его.

В рубине нет необходимости иметь концевую инструкцию для условия в конце строки, так что <% end%> не требуется для <% = визуализировать 'follow_form', если signed_in? %>

+0

Не могу поверить, я пропустил это ... спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^