【发布时间】:2017-02-03 04:04:06
【问题描述】:
在我正在开发的应用程序中,我需要安装一个通知系统。
class Notification < ActiveRecord::Base
belongs_to :notifiable, polymorphic: true
end
class Request < ActiveRecord::Base
has_many :notifications, as: :notifiable
end
class Document < ActiveRecord::Base
has_many :notifications, as: :notifiable
end
创建后,通知应根据通知类型重定向到不同的视图,因此它可能适用于相同的模型和不同的重定向(因此 redirect_to notification.notifiable 不是解决方案,因为我需要许多不同的重定向相同模型,不仅是表演)。 使用 polymorphic_path 或 url,也不要给出不同的重定向,只定义前缀助手。
我需要更明确的内容,例如让我们采用两种不同类型的通知,一种是提交请求的通知,因此单击它会重定向到请求本身,但是当请求完成时,用户将被重定向到他的仪表板。
我不想重定向到 notification_controller 并在模型上测试然后在通知类型上再次测试,我希望这里的多态性可以帮助。有没有办法调用控制器模型中的方法(模型是从多态关联中检测到的)
谢谢
【问题讨论】:
-
"有没有办法调用控制器模型中的方法。"怎么样:@notification.notifiable.is_a?(请求)
-
您的术语有问题。单击某些内容不会“重定向到请求”,但我认为您可能过于拘泥于不在 Notifications_controller 中执行任何操作。您能否描述您希望看到的更具体的步骤?
标签: ruby-on-rails ruby redirect polymorphic-associations