モジュール: Mongoid::Attributes::Nested::Classメソッドs

定義:
lib/mongoid/attributes/ Nested.rb

定数の概要の削減

REJECT_ALL_BLANK_PROC =
->(属性){
  属性.すべて? { |キー, 価値| キー == ' _delete ' || 価値.blank? }
}

インスタンス メソッドの概要を折りたたむ

インスタンス メソッドの詳細

は、(*args)= オブジェクト = オブジェクト を受け入れます

親の関連付けから関連モデルを更新する必要がある場合に使用されます。 埋め込み関連付けまたは参照された関連付けで使用できます。

例:

ネストされた属性の定義。


class Person
  include Mongoid::Document

  embeds_many :addresses
  embeds_one :game
  references_many :posts

  accepts_nested_attributes_for :addresses, :game, :posts
end

パラメーター:

  • *args シンボル...ハッシュ

    関連付け名のリストと、それに続くオプションのハッシュ。



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# ファイル 'lib/mongoid/attributes/ Nested.rb' は、 48行

デフォルト accepts_ Nested_attributes_for(*args)
  options = args.explain_options..dup
  options[:autosave] = true 場合 options[:autosave].nil?

  options[:reject_if] = REJECT_ALL_BLANK_PROC 場合 options[:reject_if] == :all_blank
  args. 行う |name|
    メソッド = " #{ name } _attributes= "
    自己.Nested_attributes[" #{ name } _attributes "] = メソッド
    関連付け = 関係[name.to_s]
    発生 Errors::NestedAttributesMetadataNotFound.新着情報(自己, name) ただし、 関連付け
    autosave_ Nested_attributes(関連付け) 場合 options[:autosave]

    re_defined_method(メソッド) 行う |attrs|
      _assigning 行う
        場合 関連付け.多態的か および 関連付け.inverse_type
          options = options.mergeします。(:Class_name => 自己.送信(関連付け.inverse_type))
        end
        関連付け.Nested_Builder(attrs, options).構築(自己)
      end
    end
  end
end