javascript - 如何多次调用 ruby​​ 函数

标签 javascript jquery sql ruby-on-rails ruby

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

在 Controller 中:

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);
});

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

关于javascript - 如何多次调用 ruby​​ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32019305/

相关文章:

javascript - Node.JS 中的 Facebook OAuth : storing the access token

jquery - 允许用户从 5 个不同的圣经版本中选择一个来查看引用资料。实现这一目标的最佳方法是什么?隐藏CSS类? Ajax ?

mysql - 需要来自两个 sql 列的关联数组

javascript - 无法在vue单文件组件中循环数组

javascript - 删除数据表中的特定行时出现问题

jquery - 在自定义 JQuery 中嵌套 JQuery UI 选项卡

java - 同时支持Oracle和MySQL : how similar is their SQL syntax?

sql - 通过通配符扩展将星号符号编辑到 SSMS 中的列名列表中

javascript - 仅在来自特定链接时运行 Javascript

jQuery 以 CSS 为目标 a :hover class