ソース属性を持つ ActiveRecord モデル Message と、ソースになることができる 2 つの継承されたモデルがあります。
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
がmessage.source_type = A.to_s
、役に立ちませんでした。私のソフトウェアをテスト環境と同じように本番環境で動作させるための良い解決策を知っていますか?