ruby on rails if 模板语句
ruby on rails if statement on template
<% @videos.each_with_index do |video, index| %>
<% if(@video.videotype = "vimeo") %>
<iframe width="720" height="480" src="//player.vimeo.com/video/<%=video.videourl %>" frameborder="0" id="player2" ></iframe>
<% else %>
<% if(@video.videotype = "youtube") %>
<iframe width="720" height="480" src="//www.youtube.com/embed/<%=video.videourl %>" frameborder="0" id="player1"></iframe>
<% end %>
<% end %>
<% end %>
if else 这有什么问题?我所有的视频都显示为 vimeo 播放器,但视频类型在数据库中没问题...
=
将 "vimeo"
分配给 @video.videotype
,并且由于 "vimeo"
为真,因此第一个 if
触发。您需要 ==
,比较运算符。
我发表了一些评论:
- 您的第一个直接问题是没有使用正确的相等运算符
==
。有关 Ruby 中的运算符列表,请参阅 http://www.tutorialspoint.com/ruby/ruby_operators.htm -- 这就是导致您的所有视频显示为 Vimeo 的原因。
- 您可以使用
elsif
而不是嵌套第二个 if
语句。参见 http://www.howtogeek.com/howto/programming/ruby/ruby-if-else-if-command-syntax/
- 您不需要在
if
语句中使用括号,因此 if @video.videotype == "youtube"
完全有效。
- 你好像有浮动
</div>
。它在视频循环中。如果您在循环之前打开 <div>
,您可能会生成一些无效的 HTML 语法。
实施这些,将产生以下代码:
<% @videos.each_with_index do |video, index| %>
<% if @video.videotype == "vimeo" %>
<iframe width="720" height="480" src="//player.vimeo.com/video/<%= video.videourl %>" frameborder="0" id="player2" ></iframe>
<% elsif @video.videotype == "youtube" %>
<iframe width="720" height="480" src="//www.youtube.com/embed/<%= video.videourl %>" frameborder="0" id="player1"></iframe>
<% end %>
<% end %>
我还让你的间距和缩进更加连贯。这应该会产生更具可读性的代码。
您使用了赋值运算符 (=) 而不是相等运算符 (==)。
<% @videos.each_with_index do |video, index| %>
<%if(@video.videotype == "vimeo") %>
<iframe width="720" height="480" src="//player.vimeo.com/video/<%=video.videourl %>" frameborder="0" id="player2" ></iframe>
<% else %>
<% if(@video.videotype == "youtube") %>
<iframe width="720" height="480" src="//www.youtube.com/embed/<%=video.videourl %>" frameborder="0" id="player1"></iframe>
<% end %>
<% end %>
<% end %>
- "=" 是一个赋值运算符,不要在 Ifs 中使用它,它会将所有内容都赋值给 "vimeo",从而弄乱这里的逻辑。使用“==”进行比较。
- 您可以使用 elsif 避免此类嵌套条件
在此特定情况下,视图中的 if 语句不需要括号
<% @videos.each_with_index do |video, index| %>
<%if @video.videotype == "vimeo" %>
<!-- iframe for vimeo -->
<% elsif @video.videotype == "youtube" %>
<!-- iframe for youtube -->
<% end %>
<% end %>
祝你好运,希望能成功
<% @videos.each_with_index do |video, index| %>
<% if(@video.videotype = "vimeo") %>
<iframe width="720" height="480" src="//player.vimeo.com/video/<%=video.videourl %>" frameborder="0" id="player2" ></iframe>
<% else %>
<% if(@video.videotype = "youtube") %>
<iframe width="720" height="480" src="//www.youtube.com/embed/<%=video.videourl %>" frameborder="0" id="player1"></iframe>
<% end %>
<% end %>
<% end %>
if else 这有什么问题?我所有的视频都显示为 vimeo 播放器,但视频类型在数据库中没问题...
=
将 "vimeo"
分配给 @video.videotype
,并且由于 "vimeo"
为真,因此第一个 if
触发。您需要 ==
,比较运算符。
我发表了一些评论:
- 您的第一个直接问题是没有使用正确的相等运算符
==
。有关 Ruby 中的运算符列表,请参阅 http://www.tutorialspoint.com/ruby/ruby_operators.htm -- 这就是导致您的所有视频显示为 Vimeo 的原因。 - 您可以使用
elsif
而不是嵌套第二个if
语句。参见 http://www.howtogeek.com/howto/programming/ruby/ruby-if-else-if-command-syntax/ - 您不需要在
if
语句中使用括号,因此if @video.videotype == "youtube"
完全有效。 - 你好像有浮动
</div>
。它在视频循环中。如果您在循环之前打开<div>
,您可能会生成一些无效的 HTML 语法。
实施这些,将产生以下代码:
<% @videos.each_with_index do |video, index| %>
<% if @video.videotype == "vimeo" %>
<iframe width="720" height="480" src="//player.vimeo.com/video/<%= video.videourl %>" frameborder="0" id="player2" ></iframe>
<% elsif @video.videotype == "youtube" %>
<iframe width="720" height="480" src="//www.youtube.com/embed/<%= video.videourl %>" frameborder="0" id="player1"></iframe>
<% end %>
<% end %>
我还让你的间距和缩进更加连贯。这应该会产生更具可读性的代码。
您使用了赋值运算符 (=) 而不是相等运算符 (==)。
<% @videos.each_with_index do |video, index| %>
<%if(@video.videotype == "vimeo") %>
<iframe width="720" height="480" src="//player.vimeo.com/video/<%=video.videourl %>" frameborder="0" id="player2" ></iframe>
<% else %>
<% if(@video.videotype == "youtube") %>
<iframe width="720" height="480" src="//www.youtube.com/embed/<%=video.videourl %>" frameborder="0" id="player1"></iframe>
<% end %>
<% end %>
<% end %>
- "=" 是一个赋值运算符,不要在 Ifs 中使用它,它会将所有内容都赋值给 "vimeo",从而弄乱这里的逻辑。使用“==”进行比较。
- 您可以使用 elsif 避免此类嵌套条件
在此特定情况下,视图中的 if 语句不需要括号
<% @videos.each_with_index do |video, index| %> <%if @video.videotype == "vimeo" %> <!-- iframe for vimeo --> <% elsif @video.videotype == "youtube" %> <!-- iframe for youtube --> <% end %> <% end %>
祝你好运,希望能成功