Hỏi về kế thừa trong controller Rails
E có sử dụng một Gem và gem đó yêu cầu kế thừa lại controller của nó
class NotificationsController < ActivityNotification::NotificationsController
trong khi e vẫn muốn kế thừa từ BaseController thì làm thế nào ạ.
class NotificationsController < BaseController
E xin cảm ơn!
2 CÂU TRẢ LỜI
Class ActivityNotification::NotificationsController
kế thừa ActivityNotification.config.parent_controller.constantize
https://github.com/simukappu/activity_notification/blob/master/app/controllers/activity_notification/notifications_controller.rb#L3
ActivityNotification.config.parent_controller
có giá trị default là ApplicationController
https://github.com/simukappu/activity_notification/blob/master/lib/activity_notification/config.rb#L159
Nếu bạn muốn thay đổi parent class này thì bạn có thể config trong initializer mà gem này tạo ra
config/initializers/activity_notification.rb
ActivityNotification.configure do |config|
...
config.parent_controller = 'BaseController'
...
end
Khi đó thì bạn sẽ có quan hệ
NotificationsController < ActivityNotification::NotificationsController < BaseController
bạn cứ dùng cách 1 nhé. vì bản thân controller của gem đó cũng đã kế thừa BaseController rồi
E đã thử k đc a ạ. https://github.com/simukappu/activity_notification