nvm Я понял это. Для всех заинтересованных я удалил css, который нацелил div id и visibility:hidden;
из .preview и вместо этого добавил display: none; z-index: -1;
в .preview и использовал этот JS-код:
$(function(){
$('#preview1').hover(function(){
$('#preview1-show').show();
},function(){
$('#preview1-show').hide();
});
$('#preview2').hover(function(){
$('#preview2-show').show();
},function(){
$('#preview2-show').hide();
});
});
Это не идеальное решение так как я должен настроить таргетинг на каждую отдельную ссылку (у меня есть 13), но она работает именно так, как я хочу. Если у кого-то есть более элегантное решение, поделитесь им.
Проблема заключалась в том, что мой контроллер расширял ActionController::API
вместо ActionController::Base
, к сожалению, render_to_string
возвращал пустую строку, было бы легче отладить, если бы он терпел неудачу.