저는 레일에서 강력한 투표 시스템을 구현하려했지만 어려움을 겪고 있습니다. 처음에는 자신의 투표 시스템을 만들었지 만 단순한 시스템이었습니다.rails app (또는 대안)에서 vote_fu 구현
간단히 말해 카운터 캐시를 사용하여 Answer
모델의 votes_count
열을 증가 시켰습니다. 투표 _fu를 발견하고 내 투표 시스템이 얼마나 더 강력 할 수 있는지 깨달을 때까지 잠시 동안 잘 돌아갔습니다. 나는 즉시 그것을 설치하고 전체 주말 내 응용 프로그램을 찢어 서 그것을 작동 시키려고 노력했다.
이 플러그인과 관련된 스택 오버플로에 대한 몇 가지 다른 질문이 있지만 실제로 최종 해결책이 없습니다.
answers_controller.rb :
def vote_up
answer = Answer.find(params[:id])
current_user.vote_up(answer), :voter_id => current_user.id
redirect_to :back
end
votes_controller.rb :
def create
@quote = Answer.find(params[:answer_id])
respond_to do |format|
if current_user.vote(@answer, params[:vote])
format.rjs { render :action => "create", :vote => @vote }
format.html { redirect_to root_url }
else
format.rjs { render :action => "error" }
format.html { render :action => "new" }
format.xml { render :xml => @vote.errors, :status => :unprocessable_entity }
end
end
end
answer.html.erb : (여기 두 가지 방법이 작품의도)
여기 내 코드입니다<span id="vote_form" style="float: right;">
<%= link_to "Vote up", :url => vote_up_answer_path(answer) %>
/
<%= link_to_remote "Down", :
url => user_answer_votes_path(answer.user, answer, :vote => :false, :format => :rjs), :method => :post
%>
</span>
<span id="<%= answer.id %>_vote_score" class="vote_score">
<%= answer.votes_for - answer.votes_against %>
</span>
routes.rb :
map.resources :users, :member => { :suspend => :put, :unsuspend => :put, :purge => :delete } do |user|
user.resources :votes
user.resources :answers do |answer|
answer.resources :votes
end
end
map.resources :answers, :has_many => :votes, :member => {:vote_up => :post, :vote_down => :post}
레일 2.3.5를 사용하고 있습니다.
누구에게 의견이 있습니까? 나는 옛날 수제 투표 시스템으로 돌아 가야 하나? 들어 본 적이없는 또 다른 투표 플러그인 또는 메소드가 있습니까?
Vote_fu가 좋습니다. 특히 무엇이 작동하지 않습니까? – Jonathan
나에게도 좋은 것처럼 보입니다! 그래서 나는 정말로 그것을 얻고 싶다! 내 link_to 인터페이스가 작동하지 않는 것 같습니다 ... 클릭하면 투표를 추가하지 않습니다. 또한, 내가 U = User.first A = Answer.last u.votes_for (가) 내가 같은 오류가 발생 을 시도 콘솔에서 "알 수없는 속성 : 유권자"... 내가 해요 이 문제를 해결하는 방법을 모릅니다. – goddamnyouryan