rsn*_*der 2 ruby random ruby-on-rails
我在侧边栏中有一个横幅,由一大块HTML显示,在我的Ruby on Rails应用程序中,views/home/index.html但我有另一个横幅.每当有人查看页面时,我想随机显示其中一个.
<section id="audio-banner">
<a onclick="changeClass("#swap") href="#">
<img src="someImage.gif" >
</a>
</section>
和
<section id="audio-banner">
<a onclick="changeClass("#swap2") href="#">
<img src="someOtherImage.gif" >
</a>
</section>
我是Ruby和Rails的新手.我不知道在哪里放置预定义的HTML(模型,控制器,帮助器等)或如何编写将随机显示这两个中的一个的函数.
我开始编辑helpers/home_helper.rb并插入以下代码
module StoreHelper
  def randomAudio
    audio1 = '<section id="audio-banner">'
    audio1 << '<a onclick="changeClass("#swap"); return false;" href="#">'
    audio1 << '<img src="some.gif">'
    audio1 << '</a>'
    audio1 << '</section>'
    audio1
    audio2 = '<section id="audio-banner">'
    audio2 << '<a onclick="changeClass("#swap2"); return false;" href="#">'
    audio2 << '<img src="someOther.gif" alt="Estate">'
    audio2 << '</a>'
    audio2 << '</section>'
    audio2
  end
end
但就我而言,因为我知道这是不正确的.任何帮助都会很棒.谢谢.
这是代码的改进版本(应该可以工作).请注意,在实际应用中,您应该将这些HTML部分移动到部分.但是在这里,为了简单起见,让我们把它们留在内联.
module StoreHelper
  def randomAudio
    audio1 = <<-HTML
    <section id="audio-banner">
      <a onclick="changeClass("#swap"); return false;" href="#">
        <img src="some.gif">
      </a>
    '</section>
    HTML
    audio2 = <<-HTML
    <section id="audio-banner">
      <a onclick="changeClass("#swap2"); return false;" href="#">
        <img src="someOther.gif" alt="Estate">
      </a>
    </section>
   HTML
   # pick one of them randomly
   [audio1, audio2].sample
  end
end
它使用heredocs定义HTML片段而不会产生额外的噪音.另请阅读Array#sample.