Avaliação de Recurso

Criado por Myriam Leggieri, @iammyr para Rails Girls Galway

Traduzido por Beatriz Rezener, @beatrizrezener

Os tutoriais básicos que foram mesclados e adaptados são: Tutorial Ruby on Rails, App RailsGirls e os tutoriais para criação de thumbnails, autenticando usuários, adicionando design, implantando com o OpenShift e adicionando comentários.

O que queremos que nosso app faça? Primeiramente, nós gostaríamos de:

Até então, nós modelamos e implementamos recursos de comentários, usuários e locais. Vamos agora habilitar a avaliação para lugares.

Avaliando Locais

Passo 0: Adicionar a gem letsrate

Abra o seu Gemfile e adicione a linha:

gem "letsrate", :git => "git://github.com/iammyr/letsrate.git"

e execute

bundle install

para instalar a gem. Além disso, lembre-se de reiniciar o servidor Rails.

Passo 1: Configure o letsrate em seu app

Execute o comando a seguir no terminal (estamos assumindo que já habilitamos a autenticação de usuários usando a gem Devise).

rails g letsrate user

Step 2: Aplique letsrate a seu recurso

Você deve adicionar a função letsrate_rateable, com sua opção de dimensões, ao modelo do recurso que você deseja avaliar, por exemplo, local. Você pode ter múltiplas dimensões.

Em app/models/place.rb adicione

letsrate_rateable "autismo_amigavel", "geral"

Então você precisa adicionar uma chamada a letsrate_rater no modelo de usuário:

letsrate_rater

Step 3: Render the Views

Há um método auxiliar chamado rating_for para adicionar as estrelas de avaliação. Por padrão, rating_for irá mostrar a média das avaliações e aceitará uma nova avaliação de um usuário autenticado.

Abra app/views/places/show.html.erb e adicione

<p>
  <strong>Votos:</strong><br />
  Autismo amigável : <%= rating_for @local, "autismo_amigavel" %> <br />
  Geral : <%= rating_for @local, "geral" %>
</p>
<hr />
<p>
  <strong>Seus votos:</strong><br />
  Autismo amigável : <%= rating_for_user @local, current_user, "autismo_amigavel", :star => 7 %>
  Geral : <%= rating_for_user @local, current_user, "geral", :star => 7 %>
</p>
<hr />

Você pode usar o método auxiliar rating_for_user para mostrar a avaliação de estrelas para o usuário.

É isso aí! ^__^ Experimente reiniciar o servidor, dê um add, commit e push no GitHub. Se tudo estiver funcionando, você também pode implantar ;)


Outros Guias