App.net にあるような注釈のモデルを構築しようとしています: http://developers.app.net/docs/meta/annotations/。多くのモデルに注釈を簡単に追加するために、懸念事項を使用します。
これまでのところ、注釈のモデルがあります。
class Annotation
include Mongoid::Document
field :key, :type => String
field :value
embedded_in :annotatable, polymorphic: true
# Some validations
attr_accessible :key, :value
attr_accessor :key, :value
end
懸念事項:
module Annotatable
extend ActiveSupport::Concern
included do
embeds_many :annotations, as: :annotatable
end
# Somewhat helper method to add annotaion only after they are valid.
def add_annotation( annotation )
if !annotation.valid?
return false
else
self.annotations.push annotation
return true
end
end
end
最後に、懸念事項を含めたモデルがあります。
class User
include Mongoid::Document
include Mongoid::Timestamps
include Annotatable
# Much other stuff...
end
残念ながら、注釈は保存されません:-/ 何かアイデアはありますか?