我有一个弹出窗口,我希望每个项目之间都有一个休息时间 在内容数据中。
%i.fa.fa-folder.item{"data-content" => "#{folder.doc.map{ |file_id| File.find(file_id).name}.join{"<br />"}.html_safe}",rel: "popover", title: "title:"}
我已将“ \ n”添加到联接中,但无法正常工作。您知道我应该在代码的哪里放置“ \ n”吗?
答案 0 :(得分:0)
\n
在HTML中未呈现为换行符。请改用<br />
标签:
#{folder.doc.map{ |file_id| File.find(file_id).name}.join("<br />").html_safe}",rel: "popover", title: "title:
答案 1 :(得分:0)
如果正在浏览器中显示该字符,则\n
将仅在代码中放入换行符 。 HTML换行符 tag 为<br />
。但是,如果不了解您正在使用的一般上下文,那么很难为您提供良好的建议。
通常,如果我要列出事物,那么我会将整个列表包装在一个<ul>
标记中,而每个列表项都包装在一个<li>
中……或者也许每个都应该包裹在<div>
中。
与大多数编程语言一样,关于HTML的事情是,有许多方法可以执行任意操作,但是取决于整体情况,有更好的方法也可以有更糟的方法
答案 2 :(得分:0)
添加换行符将不起作用,因为HTML将忽略任何空格/换行符,以使字符串尽可能最佳地连续。因此,您必须使用<br/>
在HTML中添加明确的换行符。但是,现在,为了安全起见,除非您明确指示Rails 不这样做,否则为了安全起见,所有字符串都将被html转义。
因此,在您的情况下,您想要构建文件列表,声称它是安全的,然后将其设置为内容。
- file_list = folder.doc.map{|file_id| File.find(file_id).name}.join('<br/>').html_safe
%i.fa.fa-folder.item{data: {content: file_list, html: "true", rel: "popover", title: "title:"}
其次,因为您正在使用引导程序来渲染弹出窗口,所以您还必须指示引导程序弹出窗口将data-content
解释为html,并且不应对其进行转义(通过设置data-html
属性)。
答案 3 :(得分:0)
对于这种情况,我建议使用helper
助手
module MyHelper
def render_data_content(folder)
folder.doc.map do |file_id|
File.find(file_id).name
end.join('<br/>').html_safe
end
end
查看
%i.fa.fa-folder.item{"data-content" => render_data_content(folder) ,rel: "popover", title: "title:"}