create.js.erb
ビューフォルダーにあるjsファイルがあります。レコードを作成しようとすると呼び出されるはずですが、呼び出されていません。理由がわかりません。正直に言うと、アプリがビュー フォルダー内の js ファイルを呼び出す方法さえわからないため、問題をデバッグするためにここに貼り付けるコードがわかりません。
ビュー フォルダー内の js がどのように実行されるか、アセット パイプラインではなくビュー フォルダーに js ファイルを配置するタイミングを説明できる人はいますか?
create.js.erb
ビューフォルダーにあるjsファイルがあります。レコードを作成しようとすると呼び出されるはずですが、呼び出されていません。理由がわかりません。正直に言うと、アプリがビュー フォルダー内の js ファイルを呼び出す方法さえわからないため、問題をデバッグするためにここに貼り付けるコードがわかりません。
ビュー フォルダー内の js がどのように実行されるか、アセット パイプラインではなくビュー フォルダーに js ファイルを配置するタイミングを説明できる人はいますか?
*.js.erb ファイルは、コントローラー アクションで AJAX/JS を使用している場合にレンダリングされます。デフォルトでは、create メソッドを呼び出すと、Rails は HTML を使用して応答します。これにより、新しいページが読み込まれます。代わりに AJAX を使用したい場合があるため、ビュー フォルダーに js.erb ファイルを作成します。
これが機能するには、使用しているフォームおよび/または link_to オブジェクトが AJAX 対応である必要があります (:remote => true
属性が必要です)。それらがリモート フォームとして指定されていない場合、これらは JS および作成の代わりに HTML を実行します。 js.erb ファイルが呼び出されることはありません。
コントローラ メソッドは、js リクエストに応答する方法も知っている必要があります。次のようなものが必要です:
respond_to do |format|
format.js
end
このコードは Rails に、ビュー フォルダーで "method".js.erb というファイルを探すように指示します。この場合は、create.js.erb です。
これらのファイルは、アセット パイプラインに配置する通常の JS ファイルとはまったく異なります。これらは、コントローラー アクションの結果としてレンダリングされるビュー テンプレートです。
Rails/AJAX のチュートリアルが参考になるかもしれませんが、このプロセス全体を順を追って説明した非常に優れたチュートリアルを次に示します。
http://net.tutsplus.com/tutorials/javascript-ajax/using-unobtrusive-javascript-and-ajax-with-rails-3
さらに支援が必要な場合は、コントローラーとビューファイルのコードを投稿してください...