0

埋め込まれた Mongoid モデル インスタンスに動的属性が存在するかどうかを確認するためのクリーンな方法が必要です。

これは最上位モデルで機能します。

account.attributes.member?("coordinates")

しかし、私の座標は埋め込みモデルの場所に保存されています。以下は、未定義のメソッド エラーをスローします。

account.locations.attributes.member?("coordinates") 

誰でもこれを行う方法を知っていますか?

4

2 に答える 2

1

場所は埋め込みドキュメントの配列のように見えるためです。おそらく多くの関係があります。

attributesデータ型のメソッド名はありませんarray。そのため、未定義のエラーが発生しています。あなたはそれを修正することができます

  account.locations[0].attributes.member?("coordinates") 

または、配列全体の座標メンバーを確認します

  account.locations.map {|x| [x.id,x.attributes.member? 'coordinates'] }
于 2012-11-05T18:19:42.193 に答える
0

そこにあるlocations属性にさえ依存できないため、私は次のようになりました。

@ account.locationsの場合?!@ account.locations [0] .coordinates?@ account.locations [0] .coordinates.blank?#何かをするend end end

ちょっと面倒ですが、動作します。
応答Rameshをありがとう!

何らかの理由でコードのフォーマットを機能させることができないことに注意してください...ごめんなさい

于 2012-11-06T19:14:43.193 に答える