我想在我的Rails應用程序中分配一個屬性,但是,當我重新查詢數據庫時,分配的數據消失。這裏是我的模型:Mongoid持久性問題
class Scent
include Mongoid::Document
field :scentid, type: Integer
field :name
field :price
field :category
field :description
field :available, type: Boolean
belongs_to :order
embedded_in :cartitem
attr_accessible :name, :price, :category, :available
end
class Cartitem
include Mongoid::Document
field :quantity, type: Integer
embeds_one :scent
embedded_in :cart
end
下面是該查詢我運行:
1.9.3p194 :001 > User.first.cart.cartitems.first.scent
=> nil
1.9.3p194 :060 > User.first.cart.cartitems.first.scent = Scent.first
=> #<Scent _id: 50381e2ec8bafa1710000001, _type: nil, scentid: 1, name: "gold", price"99.99", category: "fresh", description: nil, available: true, order_id: nil>
1.9.3p194 :061 > User.first.cart.cartitems.first.scent
=> nil
上爲什麼發生這種情況的任何想法?謝謝您的幫助!
編輯:這裏是我的用戶和車型號:
field :firstname
field :lastname
field :email
field :password
field :password_confirmation
field :password_digest
field :stripeid
field :remember_token
has_many :orders
embeds_many :address
embeds_one :cart
attr_accessible :firstname, :lastname, :email, :password, :password_confirmation
has_secure_password
before_save { |user| user.email = email.downcase }
before_save :create_remember_token
validates :firstname, presence: true, length: {maximum: 50}
validates :lastname, presence: true, length: {maximum: 50}
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, format: {with: VALID_EMAIL_REGEX}, uniqueness:{case_sensitive: false}
validates :password, presence: true, length: {minimum: 6}
validates :password_confirmation, presence: true
index({email:1}, {unique: true, name: 'email_index'})
private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
end
end
class Cart
include Mongoid::Document
embedded_in :user
embeds_many :cartitems
end
通過點擊投票選項下方的右側標記接受任意兩個答案... – abhas
User.first.cart.cartitems.first.scent = Scent.new被存儲,但是,Scent.first不會。有什麼想法嗎? – pudding