Я пытаюсь переопределить способ применения рельсов и идентификатор связанного объекта, например:
Есть две простые модели:
class Album < ActiveRecord::Base
has_many :photos
end
class Photo < ActiveRecord::Base
belongs_to :album
end
А потом я хочу сделать это:
album = Album.new :title => 'First Album'
album.photos.build
album.save #=> true
В этом случае я создал плагин, который переопределяет свойство id и заменяет его хешированной строкой, поэтому я хочу найти методы, в которых вместо этого album_id
заменяется мой пользовательский метод вместо int и сможет конвертироваться до его сохранения.
Но я хочу действовать глобально внутри структуры Rails, потому что, поскольку это будет своего рода плагин, я хочу, чтобы это действие работало на динамических моделях, поэтому я не могу создать before_save
проверку для модели.
Я не уверен, что это легко понять, но я надеюсь, что кто-то может мне помочь в этом ..
Вот скриншот моей текущей таблицы, чтобы вы могли видеть, что происходит:
БД SQLite3 http://cl.ly/1j3U/content
Итак, как вы можете видеть album_id
, он заменяется моим пользовательским объектом ruby при его сохранении ... Я отключил плагин, а затем он нормально сохранился с записями 11 и 12 ...
Я хочу просто действовать на рельсы и конвертировать с помощью моих пользовательских методов, что-то вроде
def rails_association_replaced_method(record)
#take the record associations and apply a to_i custom method before save
super(record)
end
как то так:)
Ну, я надеюсь, что это не слишком сложно
Приветствия