Переопределение атрибута в Rails и получение базового значения - PullRequest
0 голосов
/ 08 мая 2009

За свою жизнь я не могу понять, как это сделать. У меня есть модель, для которой сохраненным значением является путь к ресурсу в файловой системе. Мне бы хотелось, чтобы модель писала и извлекала ресурс из файловой системы, поэтому я, естественно, хочу переопределить методы получения и установки для этого. Как мне тогда получить базовое значение в БД?

class MyModel < ActiveRecord::Base
  require 'fileutils'
  def myThing=(val)
    handle = File.open(_____, 'w')
    handle.write(val)
  end
end

Что идет, где подчеркивания? Я видел, что для этого используется метод write_attribute, но он выглядит устаревшим. Есть идеи? То же самое для добытчика, конечно.

Кроме того, если я ошибаюсь в том, что касается переопределения, я хотел бы услышать лучшую технику. Единственное, что не является вариантом, - это сохранить значение непосредственно в БД.

Спасибо!

1 Ответ

1 голос
/ 08 мая 2009

Это должно сделать это:

handle = File.open(attributes["myThing"]) 

Я бы подумал о переименовании столбца в «my_thing_path» (или myThingPath, если необходимо).

...