Я внезапно полностью потерян с областью переменных в 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"
работает через магические методы.