-1

button_to と button_to_functions を適切に使用する方法を長い間理解できません。私は Rails を初めて使用するので、わかりにくい構文がたくさんあります。

PagesHelper モジュール printString() でメソッドを作成し、ボタンのクリック時に呼び出したいと考えています。誰かがそれを行う方法を指摘できますか?

コントローラーを介して新しいページにジャンプしたくありません。ページにとどまり、ボタンをクリックしたときにメッセージを出力したいだけです

どうもありがとう!

    module PagesHelper
     def printMessage()
            return "this message from Helper"
     end    
    end

   ------------------------------------------------------------------

   this doesnt work
   <%= button_to "Print", "printMessage()" %>
4

2 に答える 2

0

これはうまくいくはずです:

module PagesHelper
  def print_message
    "this message from Helper"
  end    
end

<%= button_to_function "Print", "alert('#{print_message}')" %>
于 2013-10-27T12:53:41.970 に答える
0

Berrlington のコメントによると、Javascript と Rails の間で混乱しています。JS はクライアント側の機能を提供します。これにより、 DOM (ドキュメント オブジェクト モデル)が読み込まれたときに操作を行うことができます。Rails は基本的にサーバー用のレンダリング エンジンであり、動的にロードされたデータを使用してそれらのページを表示することができます。


Javascript を使用する必要があります

ボタンをクリックして、レンダリングされたページにデータを動的に入力しようとしています

問題は、ページが既に読み込まれている場合、Rails がページ上の要素を変更できないことです。Rails はライブ処理エンジンではありません。HTTP リクエストを受け取り、リクエストに基づいて「ビュー」をレンダリングします。

ボタンを機能させる方法は、 Rails の JS 機能を使用して、次のようにコンテンツを動的にロードすることです。

<%= button_to "Create", :action => "print_message", :remote => true %>

#app/controllers/your_controller.rb
def print_message
    respond_to do |format|
        format.js 
    end
end

#app/views/your_controller/print_message.js
alert('your message');
于 2013-10-27T12:54:03.320 に答える