#ruby-on-rails
#ruby-on-rails
Вопрос:
Я новичок в rails, и я все еще немного смущен конвейером rails assets.
У меня есть массив с кучей строк, и с каждой строкой связано изображение. Я хочу, чтобы src изображения был равен строке ‘.png’.
Вот некоторый код, который я пытался написать (который не работает). Я понимаю, что причина, по которой это не работает, заключается в том, что код ruby выполняется при компиляции, но я не уверен, как еще это сделать. Спасибо за вашу помощь!
for flavor in flavors
curFlavorImage = document.createElement('img')
$(curFlavorImage).attr('src', "<%= asset_path('" flavor['flavor'] '.png' "') %>")
Комментарии:
1. Как говорит @Baldrick… Вы должны научиться различать серверную и клиентскую части. Сервер создает код, с которым клиент не может работать. Клиент должен отправить запрос на сервер, чтобы получить ответ. Javascript не может ни изменять, ни создавать код ruby.
Ответ №1:
flavor
это переменная javascript, она не может использоваться кодом ruby / erb.
Если у вас есть фиксированное количество изображений, я бы сделал так:
var flavor_images = [];
flavor_images['flavor1'] = '<%= asset_path("flavor1.png") %>';
flavor_images['flavor2'] = '<%= asset_path("flavor2.png") %>';
// ...
for flavor in flavors
curFlavorImage = document.createElement('img')
$(curFlavorImage).attr('src', flavor_images[flavor['flavor']]);
Комментарии:
1. Большое вам спасибо! Это имеет полный смысл