Редактировать документ MongoMapper - PullRequest
2 голосов
/ 05 июня 2011

Нигде в документации MongoMapper я не могу найти какие-либо методы для реального редактирования документов.Я не могу найти что-нибудь еще, либо.Единственный способ, который я смог найти, это метод:

class User
  include MongoMapper::Document

  key :name, String
end

user = User.create( :name => "Hello" )
user.name = "Hello?"

puts user.name # => Hello?

Есть ли более простой способ сделать это?Я знаю, что в DataMapper я могу редактировать несколько ключей (или свойств, в случае DM) одновременно, но с MM я могу делать только один за раз.1006 *

1 Ответ

4 голосов
/ 05 июня 2011

Вы редактируете свои документы / объекты так же, как редактируете объект ActiveRecord: присваиваете некоторые значения атрибутам и затем вызываете save.

В вашем примере есть только одна клавиша, поэтому вот одна с несколькими клавишами:

class User
    include MongoMapper::Document
    key :name, String
    key :email, String
    key :birthday, Date
    timestamps! # The usual ActiveRecord style timestamps
end

А потом:

user = User.create(
    :name     => 'Bob',
    :email    => 'bob@example.com',
    :birthday => Date.today
)
user.save

и позже:

user.name     = 'J.R.'
user.email    = 'dobbs@example.com'
user.birthday = Date.parse('1954-06-02')
user.save

Или есть update_attributes:

user.update_attributes(
    :name  => 'J.R. "Bob" Dobbs',
    :email => 'slack@example.com'
)
user.save

Может быть, я не уверен, что вы спрашиваете.

...