是否可以更改 rails 呈现一小段代码的方式
Is it possible to change the way rails renders a small piece of code
我正在尝试设置 VideoJS and I'm following the guide here。
您会看到,对于自动设置,视频需要像这样初始化:
<video class="video-js" data-setup='{}'>
我认为这很好,因为在 rails 我可以这样做:
<%= 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 渲染视频标签?
video_tag
助手确实有一些用途,例如引用图像的 poster
属性,因此需要它来包含图像文件的摘要。但是,对于您的用例,当您自己编写纯 html 非常容易时,我看不出有任何理由使用助手。
Helpers 只是为了让事情在语法上更容易阅读,更容易编程。如果你写 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 %>
我正在尝试设置 VideoJS and I'm following the guide here。
您会看到,对于自动设置,视频需要像这样初始化:
<video class="video-js" data-setup='{}'>
我认为这很好,因为在 rails 我可以这样做:
<%= 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 渲染视频标签?
video_tag
助手确实有一些用途,例如引用图像的 poster
属性,因此需要它来包含图像文件的摘要。但是,对于您的用例,当您自己编写纯 html 非常容易时,我看不出有任何理由使用助手。
Helpers 只是为了让事情在语法上更容易阅读,更容易编程。如果你写 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 %>