在 Rails 3.2 中工作,我是一个多态订阅模型,它的订阅类型可能是也可能不是嵌套资源。我正在尝试在电子邮件视图中显示完整的 URL 链接,但不知道该资源是否嵌套。
当我尝试url_for @model
嵌套资源时,它失败了,期待url_for [@parent, @model]
. 不幸的是,我不知道如何发现 Routes 表中定义的父级。
有没有办法识别嵌套资源的路由路径?如果我可以将模型与路线匹配,我可以填写必要的 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
可能是主题或项目的完整网址。
我意识到我可以通过辅助方法来确定这个小案例中的条件,但我很想知道如果有几十个嵌套模型对如何处理这个问题。