У меня такой случай, из БД идут названия картинок, сами картинки в папке /resources/img/%тут!%
Так вот, путь /resources/img/ должен передавать контроллер (думаю он) или представление?
Ссылки идут в массиве массивов, так что преобразовывать данные через контроллер, ой как не хочется, лишняя нагрузка, думаю лучше передавать путь, чем преобразовывать, верно?
Профессионалы, вы согласны ли со мной или есть другое решение?
Я бы отдал все операции с БД модели. На мой взгляд, это наиболее верное решение, т.к. контроллер с БД работать не должен - он должен отвечать на запросы, приходящие к нему со стороны пользователя.
Сдается мне, что у вас должна быть модель Image. У нее - атрибут, path, а так же метод getSrc, который преобразует path именно в то, что будет вставляться в тег
Контроллер тут вообще непонятно, при каких делах. Ведь вы в любой момент можете поменять способ хранения картинок - на своем сервере, на чужом, отдавать вместо пути base64 код и т.д. и.т.п.
Пример, конечно, очень упрощенный. Да и самому придумывать данный функционал - лишняя работа. Хранение файлов - довольно типичная тема
Ну вот, именно из-за этого в БД хранится только название, а не путь!
Если, предположим я перемещу папку resources в другое место (на другой сервер), то где конкретно мне нужно будет поменять этот путь?
M, V или C ???
copal: она и не отдает картинки. Она отдает путь к картинкам (который хранится в базе и, следовательно, является данными), с учетом определенной бизнес-лоигики (сервер, путь, порт...)
Посмотрите carrierwave и paperclip
люди, спасибо, я разобрался...
Можете ли напоследок порекомендовать правильное название для констант???
А точнее, если они - путь к папке, должен быть последним символом слеш?
Все операции с БД не вылезают наружу (из модели), вопрос не в этом.
Из модели я получаю названия картинок, но это название нужно дополнить, КТО это сделает?
Вот в чём вопрос!!!
Сергей: в том смысле, что путь к папке с картинами - это конфигурация приложения, и ни моделям. ни вьюхам, и уж тем более контроллерам об этом знать не обязательно.