ruby 関数を作成して js ファイルに配置したい場合、js 関数は ruby 関数を呼び出して戻り値を格納できる必要があります。
出来ますか?このタスクを行う方法は?
ruby 関数を作成して js ファイルに配置したい場合、js 関数は ruby 関数を呼び出して戻り値を格納できる必要があります。
出来ますか?このタスクを行う方法は?
私はそれが不可能だと思います、いくつかの理由があります:
ですから、Ruby 関数を JavaScript 関数に変換する必要があると思います。
または、Ruby 関数をサーバー API の一部として実装し、Ajax によって JavaScript から呼び出すこともできます。
必要な実装は、いつ Ruby コードまたは関数を呼び出すかによって異なります
ページまたは js の作成中またはレンダリング中ですか?
次に、js を .erb 拡張子で使用できます (スーパー エンジニアの提案による)。これにより、ビューとアプリケーション ヘルパーで利用可能な任意の Ruby コードと関数を呼び出すことができます。
eg demo.js.erb
var arr = "<%= call_function %>"
You need the function from client side? Then it is impossible to call the function directly, You need to use ajax for such scenarios. (as suggested by Spernsky Danil)
JavaScript はクライアント側の言語であり、Ruby はサーバー側の言語です。これらは互いに直接呼び出すことはできません。サーバー側とクライアント側の間の通信には、代わりに AJAX または WS を使用します。
js.erbファイルを使用できます。Rubyコードを含めることができます。私のプロジェクトのこのコード スニペットを見てください。
$("#myModal").modal('hide');
<% if @status == "ok" %>
<%= add_gritter("We will contact you as soon as possible!", :image => :success, :class_name => "gritter-light") %>
<% else %>
<%= add_gritter("Something went wrong while saving you request. Please try again!", :image => :error, :class_name => "gritter-light") %>
<% end %>