0

我正在开发 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" />  
4

1 回答 1

1

渲染模板后,控制器/帮助器方法outputString在客户端不可用。

button_to_function用于通过按钮单击调用 javascript 函数。如果不向服务器发出 AJAX 请求,则不能直接从 javascript 按钮调用服务器端函数。

于 2013-10-28T14:54:43.417 回答