【问题标题】:Pass more than one association ID upon record creation创建记录时传递多个关联 ID
【发布时间】:2014-04-27 05:09:12
【问题描述】:

我目前有一个名为 Problem 的模型。这通过 belongs_to 和用户 has_many 问题关联到用户。用户可以对问题进行投票。有了这个,我有一个投票模型,其中包含问题和用户的 belongs_to/index。

此代码创建我的投票,但它也不会传递用户 ID。最终我想让用户只能对一个问题投票一次。我怎样才能得到它,以便它在创建时接受两个参数,而不仅仅是问题 ID。

Conerns/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 %>

【问题讨论】:

    标签: ruby-on-rails ruby activerecord


    【解决方案1】:

    我想您可以使用current_user.id 获取当前用户的 ID(如果您使用的是 Devise),并且在 votes 表中有一个 user_id 列(如果没有,请通过迁移),那么你可以像这样编写动作:

    def upvote
      @problem = Problem.find(params[:id])
      @problem.votes.create :user_id => current_user.id
      redirect_to problem_path(@problem)
    end
    

    【讨论】:

    • 完美运行。我确实在使用设计并且投票表上已经有 ID。非常感谢鲍德里克。
    猜你喜欢
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    相关资源
    最近更新 更多