繁体   English   中英

如何多次调用 ruby​​ 函数

[英]How to call ruby function more than once

我有 ruby​​ 文本,它从 SQL 引号数据库中获取随机行,
后来我使用javascript在按钮点击时显示这个随机报价:
我的问题是,每当按下按钮时,我都想生成一个新的随机报价。 有人告诉我我可以使用 jQuery 来做到这一点,但我非常不知道如何去做。

在控制器中:

random_offset = rand(Quote.count - 1)
@random_quote = Quote.offset(random_offset).first

Javascript:

var generatedQuote = '"<%= @random_quote.quote %>" <br>  - <%= @random_quote.author %>'

function populateQuote(){
  $("#quoteArea").val(generatedQuote);
  $("#imagewrap h3").html(generatedQuote);
}

var quoteButton = document.getElementById('randomQuote');
quoteButton.addEventListener('click', function (){
  populateQuote();
});

您应该呈现所有报价并随机化客户端。 Javascript :

var quotes = <%= raw Quote.all.map {|q| [q.quote, q.author]}.to_json %>;
var random_quote = function(){
  var quote_item = quotes[Math.floor(Math.random()*quotes.length)];
  return '"'+quote_item[0]+'" <br>  - '+quote_item[1];
};

$("#randomQuote").click(function(){
  var new_random_quote= random_quote();
  $("#quoteArea").val(new_random_quote);
  $("#imagewrap h3").html(new_random_quote);
});

或者,您应该在每次单击按钮时获取服务器,具体取决于可用报价的数量/您对 Web 应用程序的偏好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM