我正在开发 Rails 应用程序,偶然发现了愚蠢而简单的问题。我需要通过触发 javascript 按钮来调用 ruby 方法。我有一个名为 Book 的控制器,我将方法放在 BooksHelper 中。我想要做的只是通过单击按钮触发此方法的执行,这将在同一页面上输出结果,我不希望该方法打开另一个页面。我已经检查了几个可能的解决方案,但无法使它们起作用。example.html.erb 中的这些方法都没有真正起作用。我想获得有关如何解决问题的帮助。它只有在我结束警报方法时才有效,但这不是我想要的。我希望在实际页面中打印输出。那么,我该怎么做呢?我已经阅读了http://guides.rubyonrails.org/working_with_javascript_in_rails.html但它没有回答我的问题,因为我不是在寻找使用控制器和路由创建新页面,而是执行 ruby 方法以便在同一页面上查看结果。谢谢!
<%= button_to_function "Output", "alert('#{outputString}')" %>
----------------------------------------------------------------------------
#app/helpers/book_helper.rb
module BooksHelper
def outputString
"output"
end
end
-----------------------------------------------------
#app/controllers/books_controller.rb
class PagesController < ApplicationController
def outputString
end
end
------------------------------------------------------
#app/views/books/example.html.erb
<%= button_to_function "Print", "outputString" %>
<%= button_to "Print", :action => "outputString" %>
<input class="ok" onclick="outputString()" type="button" value="Print" />