我有一个带有源属性的 ActiveRecord 模型消息,以及两个可以作为源的继承模型:
class Message < ActiveRecord::Base
belongs_to :source, :polymorphic => true
end
class Parent < ActiveRecord::Base
end
class A < Parent
has_many :messages, :as => :source
end
class B < Parent
has_many :messages, :as => :source
end
问题是在测试环境中,message.source_type
属性是 A 还是 B,取决于源的类型。但是当我尝试在生产中使用该应用程序时,message.source_type
是Parent
.
message = Message.new
a = A.new
message.source = a
# test mode: message.source_type == A
# production mode: message.source_type == Parent
我试图修复source_type
with message.source_type = A.to_s
,但没有帮助。您是否知道以与测试环境相同的方式在生产环境中使用我的软件的良好解决方案?