2015-01-06 3 views
0
<% @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 %> 

Что не так с этим, если иначе? все мое видео отображается как Vimeo игрок, но это тип видеозапись нормально на базе ...рубин на рельсах, если заявление на шаблоне

+0

Ваш первый непосредственной проблемой не является использование правильного оператора равенства '=='. Список операторов в Ruby см. Http://www.tutorialspoint.com/ruby/ruby_operators.htm –

+1

Вместо того, чтобы вставлять второй оператор 'if', вы можете использовать' elsif'. См. Http://www.howtogeek.com/howto/programming/ruby/ruby-if-else-if-command-syntax/ –

+1

Вам не нужны скобки вокруг ваших проверок в 'if'-statements, поэтому' if @ video.videotype == "youtube" 'отлично. –

ответ

2

Я сделал несколько замечаний:

  • Ваша первая непосредственная проблема не с помощью правильного оператора равенства ==. Список операторов в Ruby см. В разделе http://www.tutorialspoint.com/ruby/ruby_operators.htm - вот почему все ваши видео отображаются как Vimeo.
  • Вместо гнездования второго if -statement, вы можете использовать elsif. См. http://www.howtogeek.com/howto/programming/ruby/ruby-if-else-if-command-syntax/
  • Вам не нужны скобки вокруг ваших проверок в if -statements, поэтому 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 %> 

Я также сделал ваш интервал и отступы более последовательны. Это должно привести к получению более читаемого кода.

1

= назначает "vimeo" к @video.videotype, а с "vimeo" является truthy, первыми if триггеров. Вы хотите ==, оператор сравнения.

+0

нет, не работает – user3461461

+0

«не работает» - это бесполезный отчет о состоянии, он не обеспечивает абсолютно никакой диагностической силы. Вы изменили оба '=' на '=='? Изменилось ли поведение? Как это изменилось? Есть ли ошибка? Вы очистили свои кеши, как на серверах, так и на клиентах? ... – Amadan

+0

i меняю оба = на == и у меня та же проблема – user3461461

0

Вы использовали оператор присваивания (=), а не оператор равенства (==).

<% @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 %> 
+0

Я пробовал это, но та же проблема – user3461461

0
  1. «=» является оператором присваивания, не используйте его в Иф, он будет беспорядок логика здесь, назначая все на «Vimeo». Для сравнения используйте «==».
  2. Вы можете избежать таких гнездовых условий с ELSIF
  3. Вам не нужно скобку для если заявления в представлениях в данном конкретном случае

    <% @videos.each_with_index do |video, index| %> 
        <%if @video.videotype == "vimeo" %> 
         <!-- iframe for vimeo --> 
        <% elsif @video.videotype == "youtube" %> 
         <!-- iframe for youtube --> 
        <% end %> 
        <% end %> 
    

    Удачи, надеюсь, что он работает