Próbuję wywołać image_url
(z modułu ActionView::Helpers::AssetUrlHelper
) z poziomu kontrolera. Mój kontroler jest kontrolerem API, który renderuje odpowiedź json. Tak więc kontroler przygotowuje obiekt i używam jBuilder
do renderowania rzeczywistej odpowiedzi JSON. Oto kod:Jak mogę użyć pomocnika Rails image_url na warstwie Controller, aby zwracała poprawną wartość?
class Api::Mobile::HomeController < Api::Mobile::ApplicationController
include ActionView::Helpers::AssetUrlHelper
def index
@items = [Api::Mobile::HomePageItem.new(
type: 'image',
image: image_url("api/mobile/home/tutor-with-student.jpg"))]
end
end
Obraz tutor-with-student.jpg
istnieje w następującym folderze:
app/assets/images/api/mobile/home/tutor-with-student.jpg
Problemem jest to, że image_url
zwraca wartość:
http://myhost.com/images/api/mobile/home/tutor-with-student.jpg
zamiast
http://myhost.com/assets/api/mobile/home/tutor-with-student.jpg
Należy zauważyć, że gdy używam image_url
z rzeczywistego widoku, metoda zwraca poprawną wartość.
Jak mogę użyć metody image_url
na warstwie kontrolera, aby zwracała poprawną wartość?