質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

0回答

309閲覧

railsでのURL生成方法について

sakuma-s

総合スコア4

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/04/17 08:46

前提・実現したいこと

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になるよう動的に記載したいです。

都道府県の選択画面は下記の通りです。

toppages#index

発生している問題・エラーメッセージ

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 }

以上、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問