Je veux faire un contrôleur de vote générique pour beaucoup de contrôleurs différents. J'utilise la gemme Thumbs_up qui était auparavant la gemme vote_fu.classe polymorphe pour thumbs_up vote gem
https://github.com/kitop/thumbs_up/blob/master/lib/acts_as_voter.rb
Ma forme ressemble donc qui est une partie de l'objet @voteable:
<strong class="result">Votes: <%= voteable.votes_for - voteable.votes_against %></strong>
<%= form_tag user_votes_path(current_user) do |f| %>
<%= radio_button_tag :thumb_direction, :up %>
<%= radio_button_tag :thumb_direction, :down %>
<%= hidden_field_tag :voteable, @voteable %>
<%= submit_tag :vote %>
<% end %>
Cependant, lorsque je tente passer l'objet voteable dans le contrôleur ne fonctionne pas directement.
méthode non définie BASE_CLASS' pour chaîne: Classe
Ma question est alors comment regarder polymorphically le même objet ... à savoir passer le voteable_type et _id au lieu de l'objet lui-même .. A moins qu'il y ait un autre moyen plus facile?
contrôleur ressemble à ce
def create
#@user = User.find(params[:user_id])
current_user.vote(params[:voteable], :direction => params[:thumb_direction], :exclusive => true)
end
#routes
resources :users do
resources :votes
end