私は、ユーザーが簡単なフォームを介して、さらにFTPを使用して特定のディレクトリにビデオをアップロードし、フォームを介してアップロードする代わりにFTPディレクトリからファイルを選択できるプロジェクトに取り組んでいます。
私は次の、かなり標準的なセットアップを取得しましたvideos_controller
:
# routes.rb
resources :videos
# new.html.rb
form_for(@video) do |f|
...
end
コントローラの安らかなアクションはすべて機能しており、標準的な動作です。アップロードは機能しますが、それは問題ではありません。問題は、私が次のことをした場合です。
# routes.rb
resources :videos do
member do
post :from_ftp
end
end
# new.html.rb
form_for(@video, :url => from_ftp_video_url) do |f|
...
end
No route matches {:action=>"from_ftp", :controller=>"videos"}
生成されたルートは次のようになっているため、次のエラーが発生します。
from_ftp_video POST /videos/:id/from_ftp(.:format) videos#from_ftp
メンバールートなので、これは正しいようです。ただし、フォームではなく、FTPディレクトリのファイルを使用して新しいVideoオブジェクトを作成しているため、URLの一部は必要ありません:id
...したがって、これは基本的に別のcreate
アクションであるため、 POSTリクエストとしてそれを行うのが好きです...
では、どうすればこれに最善の方法で取り組むことができますか?