当我开始使用Rails时,我遇到了您的确切问题。如何在确保对association_ids进行保护的同时,在create方法中整齐地设置两个关联。
Wukerplank是正确的-您无法通过批量分配设置第二个关联,但仍可以直接在新行中分配association_id。
这种关联分配非常常见,并且在我的代码中乱七八糟,因为在许多情况下,一个对象具有多个关联。
另外,要明确一点:多态关联和has_many:through根本无法解决您的情况。您有两个独立的关联(评论的“所有者”和评论的“主题”)-无法将它们合理化为一个。
编辑:这是您应该如何做:
@student = Student.find_by_id(params[:id])@comment = @student.comments.build(params[:comment]) #First association is set here@comment.user = current_user #Second association is set hereif @comment.save # ...else # ...end
通过使用Object.associations.build,Rails会自动创建一个新的“关联”对象,并在保存时将其与Object关联。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)