В моем приложении 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). Придерживайтесь условностей языка/рамки, в которой вы работаете, и вы сбережете себе несколько головных болей (особенно когда речь заходит о чтении кода других людей). –