在我的Rails應用中,我有一個名爲Video
的模型,每個視頻都有一個rating:integer
。收視率從1
到5
。但是,當我將它們展示給用戶時,我想讓它們看起來不錯。因此,現在,使用文本,我用例如***..
取代3的評分。如何清理模型中的數據幷包含HTML?
在我video.rb
我有:
def graphical_rating
stars = ''
no_stars = ''
rating.times { stars += '*' }
(5 - rating).times { no_stars += '.' }
return stars + no_stars
end
現在,我想添加一些HTML代碼添加到它,所以它輸出<span class="stars">***</span><span class="no-stars">..</span>
,但它輸出的文本,而不是HTML。
什麼是處理這個問題的最佳方法,它可以像以前一樣簡單(我可以只使用video.graphical_rating
),同時還可以包含HTML?
你不需要'return'對方法的最後一行。返回在Ruby中是隱含的。沒有返回語句會返回'stars + no_stars'。 –
是的,我知道,但我有更多的回報。 – Gary
如果它對您更有意義,無所謂。 Ruby的約定是不會返回的。始終假定其他開發人員最終將使用您的代碼。通過使用Ruby或任何語言,您以某種方式爲社區做出貢獻,並且如果您在任何地方使用return語句,您只會挫敗其他開發人員。閱讀[風格指南](https://github.com/bbatsov/ruby-style-guide)。堅持你正在使用的語言/框架的約定,你會爲自己節省一些頭痛(特別是在閱讀其他人的代碼時)。 –