概要
フロントのjsからバックのRails APIを叩いて、データを取得しようと試みています。
この場合、パラメーターとなる名前(日本語)がパーセントにエンコードされるので、Rails側でパラメーターとなる”パフェ”を受け取ることができなく、以下のエラーが出ます。
No route matches [GET] "/api/food/%E3%83%99%E3%83%B3%E3%83%81%E3%83%97%E3%83%AC%E3%82%B9"
javascript
1axios.get("/api/food/パフェ")
Ruby
1#routes.rb 2namespace :api, format: 'json' do 3 get '/food/:name' => 'food#item' 4end
Ruby
1#food.controller 2def item 3 @item = Food.find_by(name: params[:name]) 4end
自分で捻り出した解決方法
- rails側でパーセントをデコードして受け取る→やり方がわからないし、前段階でルーティングエラーになる
- axiosでリクエスト投げる時に、エンコードさせない→無理
全く方法が浮かびません...。
ご教授いただけますでしょうか...!よろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/13 12:42
2020/02/13 13:13