ここに状況があります。Mongoid foreign_keyを整数として保存するか親モデルを保持する方法整数型
user embed_one profile
profile belongs_to city
私は
id as Integer
name as String
は、今私は、ブラウザのフォームの送信をシミュレート user.update_attributes(:profile_attributes{:city_id=>"5"})
をやっていると街のテーブルを埋めてきました。次に私はuser.profile
をチェックします。私はcity_idが文字列として格納されていることを確認します。これは私のuser.profile.city
にnilを与えるようにレンダリングします。
私はここで何が正しいのでしょうかと思います。私は私の都市のIDを文字列またはBSONオブジェクトにする必要がありますか?または、mongoidがcity_idを整数として格納するようにupdate_attributesを傍受しようとする必要がありますか?私がIntegerを都市のIDとして使用しているのは、Integerを使った検索が文字列の検索よりも速いと思ったからです。また、私は州と都市のテーブルを持っているので、私は予測可能な方法でIDを一致させたいので、私はBSONランドームキーを使いたくありません。
のように、これは有望と思われます。問題が多くの表と多くの属性に関係する場合は、追加する方法がたくさんあります。これらの属性を整数として宣言すると、自動的に文字列パラメータを整数に変換できるといいですね。 MonkeyはMongoidにパッチを当てていますか? – benzhang
bsonオブジェクトの問題点は何ですか? – rwz
私はCity州のテーブルを移植しています。私は整数が国家のidであることを望んでいるので、私の都市は正しい状態を指しています。私は外部キーとして別の属性を使うことができると思うので、私はidとしてbsonを気にしません。 – benzhang