Условное выполнение Javascript в представлении Rails - PullRequest
0 голосов
/ 28 февраля 2012

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

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

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

syntax error, unexpected keyword_ensure, expecting $end

Извлеченный источник (около строки # 48):

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

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

1 Ответ

1 голос
/ 28 февраля 2012

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

В ruby ​​нет необходимости иметь оператор конца для условия в конце строки, поэтому <% end%> не требуется для <% = render 'follow_form', если подписано_in?%>

...