在rails中的视图中将类属性添加到html元素的最简洁方法是什么?

时间:2009-06-28 19:41:13

标签: ruby-on-rails ruby views idioms

我正在为部分视图编写一些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 个答案:

答案 0 :(得分:2)

你忘了=。将<%替换为<%=,以便获得:

<%= "missing_your_voice" if not current_user %>

请记住,<% ... %>只会运行Ruby代码,但不会显示任何内容。使用<%= ... %>将运行代码显示表达式的结果。

答案 1 :(得分:0)

正如molf已经指出的那样,你的观点中有一个缺失= 它应该是<%=

除此之外,请务必通过调用控制器中的helper_method使您的控制器方法适用于您的视图。

如果需要,请查看文档。