Rails视图不呈现HTML代码

时间:2016-03-20 23:11:49

标签: ruby-on-rails ruby-on-rails-4

我是rails的新手,并尝试构建一个小项目来熟悉框架。我目前正试图建立一个非常简单的视图,表明平均评级给出了多少颗星(有点像亚马逊五星评级系统)。这个问题我无法弄清楚自己。我建了一个" stars_view"但rails代码不会渲染任何HTML。这可能是一些初学者的错误,但我好几天都找不到它。

这是我呈现局部视图的方式:

<div class="col-sm-8">
  <h2><%= @document.title %></h2>
  <%= render :partial=>'application/stars_view', :locals => {:number_of_stars => @document.average_rating_number_of_stars} %>
    <br/>von
    <%= @document.user.email %>
      <br/>
      <p>
        <%= @document.description %>
      </p>
</div>

这是我的部分代码:

<div id="stars_view">
  Stars
  <%=
    #this link is for test purposes but even this does not show.
    link_to 'Back', documents_path
    rounded_number_of_stars = (number_of_stars.to_int*2.0)/2.0
    max_number_of_stars = 5
    drawn_number_of_stars = 0
    while rounded_number_of_stars >= 1 do
      image_tag("stars/star_full.png", :class => "img-responsive")
      rounded_number_of_stars -= 1
      drawn_number_of_stars += 1
      #byebug stops here
      #byebug
    end
    if rounded_number_of_stars == 0.5
      image_tag("stars/star_half.png")
      drawn_number_of_stars += 1
      #and here
      #byebug
    end
    while drawn_number_of_stars < max_number_of_stars do
      image_tag("stars/star_empty.png")
      drawn_number_of_stars += 1
      #and here
      #byebug
    end
  %>
</div>

这是我在Safari中获得的HTML代码:

<div id="stars_view">
  Stars

</div>

我知道视图本身可能存在一些错误。我稍后会解决这些问题。现在任何帮助制作rails生成任何HTML将不胜感激。部分保存为application / _stars_view.html.erb,所有图像也应该在正确的位置。

1 个答案:

答案 0 :(得分:2)

<%=语法仅输出代码返回的最后一个内容。不是一切都在里面。这就是你没有看到输出的原因。

您要在屏幕上显示的所有内容都必须位于其自己的<%=标记中。 要运行任意代码,请使用<%

例如:

<%- while rounded_number_of_stars >= 1 do %>
  <%= image_tag("stars/star_full.png", :class => "img-responsive") %>
  <%  rounded_number_of_stars -= 1
      drawn_number_of_stars += 1
   %>
<% end %>

等等。