我目前有一个名为Problem的模型。这通过belongs_to与用户关联,并且用户has_many问题。用户可以对问题进行投票。有了这个,我有一个投票模型,对问题和用户都有belongs_to / index。
此代码创建我的投票,但它也不会带来用户ID。最终我想让用户只能对问题进行一次投票。我怎样才能得到它,因此它在创建时接受两个参数而不仅仅是problem_id。
值得关注的问题/ Vote.rb
def upvote
@problem = Problem.find(params[:id])
@problem.votes.create
redirect_to(problem_path)
end
的routes.rb
resources :problems do
member do
post 'upvote'
end
index.html.erb
<%= button_to '+1', upvote_problem_path(problem), method: :post %>
答案 0 :(得分:0)
我想您可以使用current_user.id
获取当前用户的ID(如果您使用的是Devise),并且user_id
表中有votes
列(如果不,通过迁移创建它,然后你可以写这样的动作:
def upvote
@problem = Problem.find(params[:id])
@problem.votes.create :user_id => current_user.id
redirect_to problem_path(@problem)
end