我有3个模型,如下所示,并希望将两个外键与创建时的帖子(user_id(来自用户模型)和review_id(来自评论模型)关联到目标模型。我设法使用'current_user'关联user_id通过使用下面链接中给出的解决方案来创建目标,但不确定如何完成对review_id的完成。
感谢。
Devise how to associate current user to post?
我的模特:
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
我的goal_controller.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
干杯, Azren
答案 0 :(得分:0)
虽然我不明白目标是什么。我通常使用的一种通用方法是将关系建模为您熟悉的内容,或者您可以轻松找到好的示例。例如,将您的用例视为用户 - 问题 - 答案模型。与您的用例相同,用户有许多问题和许多答案。问题有很多答案,属于用户,答案属于用户和问题。
事情变得容易,对吗?让我们看看stackoverflow如何实现这一点。您可以查看评论框的html代码,表单操作类似于(/ questions / 10186415 / answer / submit)。这里10186415是问题ID,它被传递到服务器端,所以当创建一个答案时,这个问题id可以被使用和相关。
回到你的情况,目标表格应该知道它的评论。审核ID可以是隐藏字段,也可以是提交网址的一部分。