0

我有以下 3 个模型,并希望将两个外键与创建(user_id(来自用户模型)和 review_id(来自评论模型)上的帖子关联到目标模型。我设法使用 'current_user' 将 user_id 与目标相关联使用下面链接中给出的解决方案创建,但不确定如何为 review_id 完成此操作。

谢谢。

设计如何将当前用户关联到帖子?

我的模型:

class User < ActiveRecord::Base       
  has_many :reviews
  has_many :periods, :through => :reviews
  has_many :goals
end

class Review < ActiveRecord::Base       
  belongs_to :user
  belongs_to :period
  has_many :goals
end

class Goal < ActiveRecord::Base       
  belongs_to :user
  belongs_to :review
end

我的目标控制器.rb

def create
  @goal = current_user.goals.build(params[:goal])

  respond_to do |format|
    if @goal.save
      format.html { redirect_to @goal, notice: 'Goal was successfully created.' }
      format.json { render json: @goal, status: :created, location: @goal }
    else
      format.html { render action: "new" }
      format.json { render json: @goal.errors, status: :unprocessable_entity }
    end
  end
end

干杯,阿兹伦

4

1 回答 1

0

虽然我不明白目标是什么。我通常使用的一种通用方法是将关系建模为您熟悉的事物,或者您可以轻松找到好的示例。例如,将您的用例视为用户问答模型。与您的用例相同,用户有很多问题和很多答案。question有很多答案,属于用户,答案属于用户和问题。

所以事情变得容易了,对吧?让我们看看stackoverflow是如何实现的。您可以查看评论框的 html 代码,表单操作类似于 (/questions/10186415/answer/submit)。这里 10186415 是问题 id,它被传递到服务器端,因此当创建答案时,可以使用此问题 id 并关联。

回到您的案例,目标表单应该知道它的用途。评论 ID 可以是隐藏字段,也可以是提交 url 的一部分。

于 2012-04-17T07:14:21.910 回答