Использование плагина jQuery для оценки звездности с Rails - PullRequest
1 голос
/ 06 сентября 2010

Я в процессе интеграции плагина jQuery star rating с Rails. Я написал код на стороне сервера Rails и отсортировал представление нового рейтинга, но в данный момент я пытаюсь понять, как с помощью плагина отобразить среднее значение рейтинга в виде статической серии звездочек. С отображением рейтинга все в порядке:

<p>
  <b>Rating:</b>
  <%= @place.rating_av %>
</p>

... но как лучше передать это значение звездам? Статические звезды отображаются с помощью следующего кода (с сайта плагина):

<input name="star3" type="radio" class="star" disabled="disabled"/>
<input name="star3" type="radio" class="star" disabled="disabled"/>
<input name="star3" type="radio" class="star" disabled="disabled" checked="checked"/>
<input name="star3" type="radio" class="star" disabled="disabled"/>
<input name="star3" type="radio" class="star" disabled="disabled"/>

В этом примере отображаются 3 из 5 звезд. Мне здесь не нужна никакая функциональность ajax, просто простой статический дисплей. Стоит ли думать о вспомогательном методе (например, если @ place.rating_av == 3, вывод такой, как показано выше)? Любая помощь будет высоко ценится!

1 Ответ

1 голос
/ 06 сентября 2010

Я написал пару помощников для вывода - для дальнейшего использования:

def stars(place)
  (place.rating_av.to_f).round
end

def rating_display(place)
  if stars(place) == 0
  render "no_stars"
  elsif stars(place) == 1
  render "one_star"
  elsif stars(place) == 2
  render "two_stars"
  elsif stars(place) == 3
  render "three_stars"
  elsif stars(place) == 4
  render "four_stars"
  else stars(place) == 5
  render "five_stars"
end
end

Затем в каждом фрагменте:

#_three_stars.html.erb
<input name="star3" type="radio" class="star" disabled="disabled"/>
<input name="star3" type="radio" class="star" disabled="disabled"/>
<input name="star3" type="radio" class="star" disabled="disabled" checked="checked"/>
<input name="star3" type="radio" class="star" disabled="disabled"/>
<input name="star3" type="radio" class="star" disabled="disabled"/>

И в представлении:

#show.html.erb
<%= rating_display(@place) %>

Еще нужно немного привести в порядок, но работает отлично!Если у кого-то есть лучшее решение, пожалуйста, дайте мне знать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...