2014-11-02 73 views
0

我試圖重新創建喜歡/不喜歡的酒吧,它充滿了2種不同的顏色,代表喜歡和不喜歡的數字,相互比較並相應地填充顏色。所以,我有我的Product模型,你可以喜歡或不喜歡:如何根據喜好和不喜歡的比例來獲得喜歡的酒吧填充?

.vote-bar 
    .bar 
    .likes{style: "width: #{@product.get_likes.size}%"} 
    .dislikes{style: "width: #{@product.get_dislikes.size}%"} 

我使用的是Acts As Votable gem,讓我喜歡的數量和不喜歡某個產品。我在以100%爲基礎獲得百分比方面遇到困難。所以,如果我有1像它應該填滿整個酒吧,如果我有0不喜歡它應該填充任何東西。另一個例子是2%喜歡= 2%的酒吧和3%的不喜歡= 3%的酒吧。雖然這兩個div應該只能總共等於100%。我將如何做到這一點?

回答

2

要獲得百分比,您需要將每個值除以總投票數。你不能向這些方法添加到產品型號:

class Product 
    def percentage_likes 
    self.get_likes.size.to_f/self.votes_for.size * 100 
    end 

    def percentage_dislikes 
    self.get_dislikes.size.to_f/self.votes_for.size * 100 
    end 
end 

注意到我的鑄造好惡尺寸爲float,因爲一個整數的整數分工將返回另一個整數。此外,我已乘以100,以便分數將轉換爲百分比。然後

你的看法會是這樣的:

.vote-bar 
    .bar 
    .likes{style: "width: #{@product.percentage_likes}%"} 
    .dislikes{style: "width: #{@product.percentage_dislikes}%"} 

您可能需要做一些額外的CSS操縱漂浮在.likes和.dislikes DIV,使他們出現並排側。