簡體   English   中英

用JavaScript調用Rails紅寶石方法

[英]rails ruby method invocation by Javascript

我正在使用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" />  

呈現模板后,控制器/幫助程序方法outputString在客戶端不可用。

button_to_function用於通過單擊按鈕來調用javascript函數。 您不能直接通過javascript按鈕調用服務器端函數,而無需向服務器發出AJAX請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM