是否可以改变rails渲染一小段代码的方式

时间:2017-04-04 23:14:37

标签: html ruby-on-rails ruby video.js

我尝试设置VideoJS,并按照指南here进行设置。

您会看到,对于自动设置,视频需要像这样初始化:

<video class="video-js" data-setup='{}'>

我认为这样会很好,因为在轨道中我可以这样做:

<%= video_tag @video.filename + '.mp4', :class => 'video-js', 'data-setup' => '{}' %>

然而,这会使标记呈现如下:

<video class="video-js" data-setup="{}" src="/assets/0019 Trump Android.mp4"></video>

乍一看看起来很好,除了数据设置行需要单引号,而不是双引号,或者videojs设置不起作用。像这样:data-setup='{}'

那么有没有办法让rails用单引号而不是双引号来呈现那个属性?

另外,第二个想法,当我可以用HTML编写视频标签时,为什么我应该使用rails渲染视频标签?

2 个答案:

答案 0 :(得分:1)

video_tag帮助器确实有一些用途,比如引用图像的poster属性,因此需要包含图像文件的摘要。但是对于你的用例,当你自己编写纯HTML时很容易使用帮助器。

答案 1 :(得分:1)

助手只是为了让语法更容易阅读,更容易编程。如果您编写HTML而不是ERB,它会执行相同的操作,只要您的HTML标签打印出ERB本来打印的所有内容。

在这个专用的用例中,我只会编写由ERB .each标记包围的整个HTML标记。不确定你是如何设置你的控制器的,但假设它是@videos = Videos.all,它就是这样的:

<% @videos.each do |video| %>
  <video class="video-js" data-setup='{}' src=<%=video.file_name%>>
  </video>

<% end %>