Ruby on Rails: no se puede implementar el sistema Star Rating

Estoy tratando de agregar un sistema simple de calificación de estrellas para mi aplicación que ha tomadoeste tutorial para un ejemplo. Tengo modelos de usuario, hotel y clasificación. Las dependencias son:

(rating.rb)

  belongs_to :user
  belongs_to :hotel  

(hotel.rb) y (user.rb)

has_many :ratings

Y con el siguiente código en la vista del hotel me sale este error:

NombreError en hoteles # show

variable local indefinida o método `usuario 'para Clase ...

(en la línea con<% = form_for...)

Vista del hotel (show.html.erb):

      <% form_id = "hotel_#{@hotel.id}_rating" %>
      <% if signed_in? %> <!-- To avoid throwing an exception if no user is signed in -->
          <% user_id = current_user.id %>
      <% else %>
          <% user_id = -1 %>
      <% end %>        
          <%= form_for @hotel.ratings.find_or_create_by_user_id user.id, 
                      :html => {:id => form_id, 
                      :class => "star_rating_form"} do |f| %>
              <%= f.hidden_field :hotel_id, :value => @hotel.id %>
              <% if signed_in? %>
                  <%= f.hidden_field :user_id, :value => current_user.id %>
              <% end %>        
              <%= f.hidden_field :stars, :id => form_id + "_stars" %>
          <% end %>
      <% (1..5).each do |i| %>
          <li class="rating_star" id="<%= form_id %>_<%= i %>" data-stars="<%= i %>" data-form-id="<%= form_id %>"></li>
      <% end %>

El controlador de calificaciones es:

def create
end

def update
end

def rating_params
  params.require(:rating).permit(:stars)
end

El archivo de migración es:

create_table :ratings do |t|
  t.integer :stars, :default => 0
  t.references :store
  t.references :user
end

Respuestas a la pregunta(2)

Su respuesta a la pregunta