diff --git a/lib/diaspora/fields/target.rb b/lib/diaspora/fields/target.rb new file mode 100644 index 0000000000000000000000000000000000000000..1fbbf97960ffead1233595aef880fe33d60f1b31 --- /dev/null +++ b/lib/diaspora/fields/target.rb @@ -0,0 +1,14 @@ +module Diaspora + module Fields + module Target + def self.included(model) + model.class_eval do + belongs_to :target, polymorphic: true + + validates :target_id, uniqueness: {scope: %i(target_type author_id)} + validates :target, presence: true + end + end + end + end +end diff --git a/lib/federated/relayable.rb b/lib/federated/relayable.rb index 0cbe1adbf1fdb0b1b18054c95cb6d4e85bf1ab56..4b249d5132f1c0d1501df78cadc805c83defc9ca 100644 --- a/lib/federated/relayable.rb +++ b/lib/federated/relayable.rb @@ -5,14 +5,10 @@ module Federated include Diaspora::Federated::Base include Diaspora::Fields::Guid include Diaspora::Fields::Author + include Diaspora::Fields::Target include Diaspora::Relayable - belongs_to :target, polymorphic: true - alias_attribute :parent, :target - - validates :target_id, uniqueness: {scope: %i(target_type author_id)} - validates :target, presence: true # should be in relayable (pending on fixing Message) end end