前提・実現したいこと
railsでWether Hacksを利用しています。
プルダウンで都道府県を選択し、フォームで送信します。
送信された都道府県の天気予報を画面で表示させたいのですが、
その通りの画面表示にならないため質問させてください。
toppages#index
<h1>天気予報</h1> <%= form_with url: users_path, method: :get, local: true do |f| %> <div class="field"> <%= f.label :都道府県を選択してください %><br> <%= f.select :location, User.locations.keys, {prompt: '選択してください'}, class: 'form-control btn btn-info' %> </div> <%= f.submit '天気予報を見る' %> <% end %>
users_controller
Ruby
1def index 2 @city = User.locations.values[46] 3 uri = URI.parse('http://weather.livedoor.com/forecast/webservice/json/v1?city=170010') 4 json = Net::HTTP.get(uri) 5 result = JSON.parse(json) 6 @today_tel = result['forecasts'][0]['telop'] 7 @tomor_tel = result['forecasts'][1]['telop'] 8 @min_tem = result['forecasts'][1]['temperature']['min']['celsius'] 9 @max_tem = result['forecasts'][1]['temperature']['max']['celsius'] 10 @des = result['description']['text'] 11 @des1 = result['description']['publicTime'] 12 #@des2 = DateTime.parse(des1) 13 end
Weather HacksのURLは上記のように記載しています。
このURLを下記の画面で選択した都道府県に対応したURlになるよう動的に記載したいです。
都道府県の選択画面は下記の通りです。
発生している問題・エラーメッセージ
users_controllerのindexのviewは下記のように表示されています。
石川県の天気予報が書いてあるのは、URLが石川県に対応したものだからです。
これがフォームで送信した都道府県の天気予報が表示されていればOKです。
試したこと
プルダウンの記載を簡潔にするため、Userモデルにlocationカラムを追加し、User.rbにenumとして記載しました。
User.rb
1enum location: { 2 北海道:1,青森県:2,岩手県:3,宮城県:4,秋田県:5,山形県:6,福島県:7, 3 茨城県:8,栃木県:9,群馬県:10,埼玉県:11,千葉県:12,東京都:13,神奈川県:14, 4 新潟県:15,富山県:16,石川県:17,福井県:18,山梨県:19,長野県:20, 5 岐阜県:21,静岡県:22,愛知県:23,三重県:24, 6 滋賀県:25,京都府:26,大阪府:27,兵庫県:28,奈良県:29,和歌山県:30, 7 鳥取県:31,島根県:32,岡山県:33,広島県:34,山口県:35, 8 徳島県:36,香川県:37,愛媛県:38,高知県:39, 9 福岡県:40,佐賀県:41,長崎県:42,熊本県:43,大分県:44,宮崎県:45,鹿児島県:46,沖縄県:47 10 }
以上、よろしくお願いいたします。
あなたの回答
tips
プレビュー