2016-03-20 14 views
-2

Raylara yeni çıkıyorum ve çerçeveyi tanımak için küçük bir proje oluşturmaya çalışıyorum. Şu anda ortalama derecelendirmenin verdiği yıldız sayısını (Amazon 5 Yıldız derecelendirme sistemi gibi) gösteren çok basit bir görünüm oluşturmaya çalışıyorum. Bu tek sorun kendimi anlayamıyorum. Bir "stars_view" oluşturdum ancak raylar kodu herhangi bir html oluşturmayacak. Muhtemelen yeni başlayanların bir hatasıdır ama günlerce bulamadım.Raylar, HTML kodu oluşturulmuyor görünümü

<div id="stars_view"> 
    Stars 

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

Bu benim Safari'de olsun HTML kodu aşağıdadır: Bu benim kısmi bir koddur

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

:

Bu

Ben kısmi bir görünümünü oluşturmak nasıl

Muhtemelen görünümde bazı hatalar olduğunu biliyorum. Bunları sonra çözeceğim. Şimdilik herhangi bir yardım üreten herhangi bir HTML oluşturmak için takdir edilecektir. Kısmi application/_stars_view.html.erb olarak kaydedilir, tüm görüntüler de doğru yerde olmalıdır.

cevap

2

Sözdizimi <%= sözdizimi yalnızca kodunuzun son döndürdüğü şeyi verir. İçindeki her şey değil. Bu yüzden çıktı görmüyorsun.

Ekranda göstermek istediğiniz her şeyin kendi <%= etiketinde bulunması gerekiyor. Rasgele kod çalıştırmak için <% kullanın. Örneğin

:

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

ve benzeri olabilir.

İlgili konular