在Rails 3.2中工作,我是一个多形的Subscription模型,其subscribable_type可能是嵌套资源,也可能不是嵌套资源。我试图在电子邮件视图中显示完整的URL链接,但不知道该资源是否嵌套。查找嵌套或非嵌套资源的路径
当我在嵌套资源上尝试url_for @model
时,它失败,期待url_for [@parent, @model]
。不幸的是,我不知道如何发现路由表中定义的父节点。
有没有一种方法来确定嵌套资源的路径路径?如果我可以将模型匹配到路线,我可以填写必要的ID。
到目前为止,我已经在我的模型中定义了一个名为parent_resource :model
的方法,可以遍历,但我希望有更好的方法。
在我的routes.draw
:
resources :projects do
resources :topics do
resources :comments
end
end
resources :subscriptions
(我知道我不应该被嵌套这么深)
编辑:附加信息
我的订阅模式是我使用的资源管理通知。可订阅类型提供了一个链接,用于在subscribable_type/subscribable_id上打开或关闭该用户的订阅。
然后我通过提供订阅实例的Notifier < ActionMailer::Base
并邮寄给用户。
通过该设置,我试图获取subscription.subscribable
的完整网址,这可能是主题或项目。
我意识到我可以通过辅助方法找出这个小案例中的条件,但我很想知道如果有几十个嵌套模型对,人们会如何处理这个问题。
你能也将从路由添加相关的部分文件? – zsquare
当然,马上就来。 – Dan