Asked Jun 20th, 2019 10:10 AM 167 0 2
  • 167 0 2
0

Hỏi về kế thừa trong controller Rails

Share
  • 167 0 2

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 ANSWERS


Answered Jun 21st, 2019 4:24 AM
Accepted
+5

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
Share
Answered Jun 20th, 2019 3:45 PM
+4

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

Share
Nam @Black.Box
Jun 21st, 2019 3:19 AM
0
| Reply
Share