Rails 3.2アプリには、添付ファイル付きのアセットを作成するためのPOSTを含むcoffeescript関数があります(Carrierwaveを使用)
link = url_to_file
parent = $('#dom_obj').data('id')
$.post( url, { remote_file_url: link, parent_id: parent } )
これにより、次のログが得られます。
Started POST "/assets" for 127.0.0.1 at 2013-10-05 14:53:57 +0700
Processing by AssetsController#create as JS
Parameters: {"remote_file_url"=>"https://the/correct/path", "parent_id"=>"520"}
コントローラーで
@asset = Asset.new(params[:asset])
@asset.save
アセットを作成する他の方法がいくつかありますが、それらはすべて正常に機能します。この ajax 呼び出しに渡される変数も正しいです。しかし、@asset.save は、parent_id が正しく設定されていないことを意味するアップローダーのエラーが原因で失敗しています。
このすべてのコンポーネントは他のアップロード経路を介して完全に機能するため、私の唯一の結論は、jquery ajax 呼び出しが正しくないということです。パラメーターを正しく設定していないと思います (私のコントローラーの params[:asset] はパラメーターを正しく解釈しますか?上に記録されていますか?)。
Railsがパラメータを正しく解釈するように、パラメータをjavascriptポストに渡す方法は? 私はぐるぐる回っているので、どんなガイダンスも大歓迎です!