Передайте объект в before_filter для выполнения дополнительной логики перед созданием - PullRequest
0 голосов
/ 02 апреля 2011

Мне нужно выполнить некоторую дополнительную логику над объектом, прежде чем он будет сохранен в базе данных.Я бы предположил, что использование before_filter было бы правильным способом сделать это, но я не уверен, как передать объект, который будет сохранен, в мой метод before_filter.

Ответы [ 2 ]

1 голос
/ 30 мая 2011

Это мой первый пост здесь, так что будьте осторожны со мной!

Существует метод before_save, по крайней мере в Rails 3, который можно вызвать в модели. в сообщениях модель

before_save :add_url_and_ID


def add_url_and_ID
#extra logic
self[:url] = whatever.com
self[:member_id] = member.id
end

Я, наверное, далеко, но это мой первый выход!

0 голосов
/ 02 апреля 2011

Для меня все это звучит как код модели.Чтобы получить максимальную отдачу от Rails (или любой инфраструктуры MVC), следуйте практическому правилу «Fat Models, Skinny Controllers».Это может быть слишком далеко, но я думаю, что в этом случае это довольно ясно.Если в упомянутых вами вспомогательных функциях есть ошибки, не должно ли произойти сбой сохранения с соответствующими сообщениями об ошибках?

На SO много хороших постов на эту тему. Вот один

Если этого недостаточно для работы, я бы предложил опубликовать некоторый код.

...