У меня есть следующий код, моя проблема в том, когда я пытался добавить или любой другой тег html внутри него, как показано, что он не работает, и он отображается как обычная строка.
<%= link_to image_tag(class_door(student_class), onMouseover: "this.src='/assets/open_door.png';", onMouseout: "this.src='/assets/closed_door.png'" ),'javascript:;' ,class:'popovers','data-content'=>"Number of Students: #{student_class.students.count}<br><button>Click to enter</button>" ,'data-original-title'=>"#{student_class.name.capitalize}" %>
также я попытался добавить html_safe, чтобы быть таким
<%= link_to image_tag(class_door(student_class), onMouseover: "this.src='/assets/open_door.png';", onMouseout: "this.src='/assets/closed_door.png'" ),'javascript:;' ,class:'popovers','data-content'=>"Number of Students: #{student_class.students.count}<br><button>Click to enter</button>".html_safe ,'data-original-title'=>"#{student_class.name.capitalize}" %>
но это также не работало и давало тот же результат
Попробуйте добавить 'data-html'=>true
. Вам нужно что-то вроде:
<%= link_to image_tag(class_door(student_class), onMouseover: "this.src='/assets/open_door.png';", onMouseout: "this.src='/assets/closed_door.png'" ),'javascript:;' ,class:'popovers', 'data-html'=>true, 'data-content'=>"Number of Students: #{student_class.students.count}<br><button>Click to enter</button>" ,'data-original-title'=>"#{student_class.name.capitalize}" %>
И если какое-либо из значений, которые вы вкладываете в свой HTML, нужно избегать, чтобы предотвратить инъекцию, вы можете использовать "h". Что-то вроде: #{h(student_class.name.capitalize)}
.
var handlePopovers = function () { jQuery('.popovers').popover(); // close last poped popover $(document).on('click.popover.data-api',function(e) { if(lastPopedPopover){ lastPopedPopover.popover('hide'); } }); }