1
我想爲許多不同的控制器製作一個通用的投票控制器。用於thumbs_up投票的多態類gem
我使用了之前爲vote_fu寶石的Thumbs_up寶石。
https://github.com/kitop/thumbs_up/blob/master/lib/acts_as_voter.rb
我的形式看起來像這樣這部分與對象@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 %>
然而,當我試圖傳遞voteable對象到控制器直接就不起作用。
未定義的方法`BASE_CLASS'的 字符串:類
我的問題是再怎麼多態查找相同的對象...即通過voteable_type和_id,而不是對象本身..除非有其他更簡單的方法?
控制器看起來像這樣
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