Какой самый простой способ добавить атрибут класса к элементу html в представлении в rails - PullRequest
1 голос
/ 28 июня 2009

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

Если страница просматривается кем-то, кто еще не является участником сайта, необходимо передать фрагмент shared/comment_not_logged_in.

Тем не менее, я полностью озадачен тем, почему я не могу выполнить ту же проверку, чтобы решить, должна ли страница добавить атрибут класса "missing_your_voice" во вложенный элемент div здесь:

   <li class="user_submission_form bubble comment_form <% "missing_your_voice" if not current_user %>">

      <% if current_user %>      
        <%= image_tag(current_user.avatar(:comment), :class => "profile_pic") %>
        <% form_for [parent, Comment.new] do |f| %>
        <%= render "comments/form", :f => f %>
        <% end %>
      <% else %>
        <%= render :partial => 'shared/comment_not_logged_in' %>
      <% end %>

  </li>  

Та же идиома, "missing_your_voice" if not current_user возвращает строку в irb, а также в консольном отладчике.

Что я здесь не так делаю?

Ответы [ 2 ]

2 голосов
/ 28 июня 2009

Вы забыли =. Замените <% на <%=, чтобы вы получили:

<%= "missing_your_voice" if not current_user %>

Помните, что <% ... %> будет только запускать код Ruby, но ничего не отображать. Используя <%= ... %>, вы запустите код , а отобразит результат выражения.

0 голосов
/ 29 июня 2009

Как уже заметил Мольф, на ваш взгляд, пропущен =
Это должно быть <%=.

Кроме этого, убедитесь, что ваш метод контроллера доступен для просмотра, вызвав helper_method в вашем контроллере.

При необходимости посмотрите документацию.

...