У меня есть частный метод в приложении Rails для подключения к Amazon S3, выполните переданный блок кода, а затем закройте соединение с S3. Это выглядит так:
def S3
AWS::S3::Base.establish_connection!(
:access_key_id => 'Not telling',
:secret_access_key => 'Really not telling'
)
data = yield
AWS::S3::Base.disconnect
data
end
Он называется как это (в качестве примера);
send_data(S3 {AWS::S3::S3Object.value("#{@upload_file.name}",'bucket')}, :filename => @upload_file.name)
Я вызываю этот метод несколькими способами в моем контроллере и модели, поэтому включил его в оба класса как частный метод. Это прекрасно работает, и я доволен, но это не очень СУХОЙ.
Как я могу сделать этот метод доступным как для моей модели, так и для контроллера, но только один раз появляется код? Это больше вопрос Ruby, чем вопрос Rails и отражает мою новизну в ООП. Я предполагаю, что модуль или смесь - это ответ, но я до сих пор не использовал их до сих пор и нуждаюсь в небольшой руке.
Спасибо.