1

インデックスビューで、と呼ばれる関数を実行するボタンを追加しようとしていますmyFunction(myArg)。この関数はにありbehaviours/myRubyFile.rbます。特定の引数でその関数を実行するボタンを作成するにはどうすればよいですか。

編集:今、私は新しいエラーを受け取っています

The action 'my_func' could not be found for FunctionsController

ただしmy_func、FunctionsControllerで定義された関数があります。

4

1 に答える 1

2

通常、そのボタンからサーバーにリクエストを送信するので、サーバーは myFunction を実行します。これを実現するには、次の手順に従います。

1 - behaviours/myRubyFile.rb がモジュールを定義していることを確認してください:

module MyRubyModule
  def myFunction(arg)
    #Your logic here
  end
end

2 - routes.rb でルートを定義します。

match '/my_func' => "functions#my_func"

3 - FunctionsController を定義します。

class FunctionsController < ApplicationController
  include MyRubyModule

  def my_func
    arg = params[:arg]
    myFunction(arg)
  end
end

4 - ビューにボタンを作成して、リクエストをサーバーに送信します。

<%= button_to "Button", {:action => "my_func", :controller => "functions", :arg => "YOUR ARG HERE"} %>

私はこのコードをテストしていませんが、うまくいくはずです。

編集::arg => "YOUR ARG HERE"ルートに追加 (Thnx nzifnab)

于 2012-09-11T18:30:42.360 に答える