我想實現STI如下Rails的STI命名空間中的類,而無需使用類型列
module ModuleName
class ParentName
self.inheritance_column = 'column_name'
end
end
module ModuleName
class ChildName < ModuleName::ParentName
class << self
def find_sti_class(type_name)
type_name = self.name
super
end
def sti_name
self.name.sub(/^.*:/,"")
end
end
end
當我嘗試
ModuleName::ChildName.create(column_name: 'ChildName')
我收到以下錯誤
ActiveRecord::SubclassNotFound: Invalid single-table inheritance type: ChildName is not a subclass of ModuleName::ChildName
我試圖參考此處提供的解決方案 Rails STI: How to change mapping between class name & value of the 'type' column
任何幫助表示讚賞。謝謝。
「<< ModuleName :: ParentName」只是一個錯字,還是您實際上有<<那裏? –
錯字。將糾正它。我在實際代碼中使用<。 – rohan