Как установить Mongoid поля из класса - PullRequest
0 голосов
/ 01 июля 2011

Я внезапно полностью потерян с областью переменных в Rails с Mongoid. (Вероятно из-за нехватки кофе).

Все, что я хочу, - это способ установки определенных полей из приложения, но единственный способ найти это - вызвать write_attribute.

class Example
  include Mongoid::Document
  field :foo

  def bar
    @foo = "meh"
  end
  def hmpf
    foo = "blah"
  end
  def baz
    write_attribute(:foo, "meh")
  end
end

e.bar   #=> "meh"
e.foo   #=> nil
e.hmpf   #=> "blah"
e.foo   #=> nil
e.baz   #=> [nil, "meh"]
e.foo   #=> "meh"

Я неправильно использую прицел? Почему запуск foo = "bar" не устанавливает поле изнутри, он работает извне: e.foo = "blah" работает через магические методы.

1 Ответ

1 голос
/ 01 июля 2011

Попробуйте добавить self к вашим ссылкам на атрибуты при работе в методах экземпляра вашей модели:

def hmpf
  self.foo = "blah"
end

Должно помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...