0

ソース属性を持つ 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_typeParent.

message = Message.new
a = A.new
message.source = a
# test mode: message.source_type == A
# production mode: message.source_type == Parent

で修正しようとしましたsource_typemessage.source_type = A.to_s、役に立ちませんでした。私のソフトウェアをテスト環境と同じように本番環境で動作させるための良い解決策を知っていますか?

4

1 に答える 1

2

クラスを Base と呼ぶべきではありません。Base はいくつかの ruby​​/rails クラス用に予約されているため、大きな問題になります。これが問題なのかもしれません。

于 2012-11-20T13:25:29.047 に答える