检索多态关联正确的模型和id

时间:2017-05-02 16:47:40

标签: ruby-on-rails polymorphic-associations

我是多态关联的新手,目前有点迷失。

我正在尝试向我的网站添加一项功能,用户可以向不同类型的专业人士询问报价。每个专业人士都拥有特定类型的报价,例如:

模型photographer拥有photographerquotes

我这样做是因为每种类型的引用都非常可靠于它所属的专业模型,并且数据库模型对每种类型都是特定的。

虽然有一件事情与那些引号模型不变:它们可以通过userprofessionnal

进行评论

然后我制作了不同的quotes模型 可评论 但是当我需要在评论控制器中创建可注释变量时,我有点迷失#create行动。

本教程说我们可以制作模块https://gorails.com/episodes/comments-with-polymorphic-associations(15:00)

这里的railscast:https://www.youtube.com/watch?v=WOFAcbxdWjY使用以下技巧直接从地址栏中获取正确的引用模型:

def load_commentable
   klass = [Article, Photo, Event].detect { |c| params["#{c.name.underscore}_id"] }
   @commentable = klass.find(params["#{klass.name.underscore}_id"])
end

实际上两者似乎都违反直觉,因为我不是Ruby专家,甚至还不是Rails专家。

两种解决方案中的一种是理想的解决方案吗? 2017年在轨道5下开发还有哪些可能性?

编辑

实际上还有第三种可能性:

将表单中的quote模型类型和id作为隐藏字段传递。但是这个人的gorails教程说任何人都可以为我们传递这些数据,这不是真的安全......

我不是HTPP专家,但我认为CREATE方法无法在地址栏中复制。我以为只有GET方法才是'公开'......

0 个答案:

没有答案