'importdata' と呼ばれる、それ以外の場合は完全なコントローラーの 1 つに追加のメソッドがあります。実際にデータを変更している (データベースに csv をインポートしている) ので、get ではなく put ルートにする必要があることがわかりました。
最初は持っていた
resource data_set do
put 'importdata', on: :method
end
私も試したことは次のとおりです。
put 'data_sets/:id/importdata', "data_sets#importdata'
rake routes は、どちらの場合も必要なルートを示しています。
コントローラーで(1番目の例)ルートのメソッドを持っていたときに私がしたことは
redirect_to import_data_sets_path id: dataset.id
2 番目の例では、次のようになります。
redirect_to controller: "data_sets", action: "importdata", id: dataset.id
どちらの場合も表示されるメッセージは次のとおりです。
No route matches [GET] "/data_sets/28/importdata"
これは put ルートなので正しいです。これを機能させる唯一の方法は、get の put を変更することです。
get 'data_sets/:id/importdata', "data_sets#importdata'
put ルートでそれを機能させるにはどうすればよいですか? そもそもプットルートでいいのか?
御時間ありがとうございます。