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

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

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

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

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

2451閲覧

rails JSで取得した値(api)をrails上で扱い、データベースに保存したい

hurousyotoku500

総合スコア27

Ruby

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

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/10/10 06:27

編集2020/10/11 06:55

・実現したいこと
楽天APIでゴルフ場名をJSで取得し、その値をrailsでデータベースに保存したい。
検索でヒットしたゴルフ場名一覧をvIEWで表示し(ここまで実装済み)、それをリンクにして、クリックすると、そのゴルフ場名をデータベースに保存したい。

・わからないこと
どうやってJSで取得した値を、railsに渡したらよいかわからない。

都道府県とキーワードを入力してAPIを叩き、それをJQueryでHTMLに渡しています。
そもそもJSからrailsに値を渡すことが可能なのかどうかもわからない状態です。

・やってみたこと
JQueryの.append内に、<% %>で色々書いてみましたが、当然かもしれませんが、文字列としてあつかわれてしまい、
どうしたらよいかわからない状態です。
アドバイス等、宜しくお願い致します。

JS

1//index.js 2window.onload = function() { 3 document.getElementById("search").onclick = function() { 4 $("#add_test").empty(); 5 var japanese = $("#coursenameform").val(); 6 var keyword = encodeURI(japanese); 7 var areaCode = $("#color1").val(); 8 9 $.ajax({ 10 url: "https://app.rakuten.co.jp/services/api/Gora/GoraGolfCourseSearch/20170623?format=json" + 11 "&areaCode=" + 12 areaCode + 13 "&keyword=" + 14 keyword + 15 "&applicationId=1234567890", 16 type: "GET", 17 }).done(function(data) { 18 var course_number = data.count; 19 for (var i = 0; i < course_number; i++) { 20 console.log("done", data.Items[i].Item.golfCourseName); 21 $("#add_test").append( 22 $("<li />", { 23 text: data.Items[i].Item.golfCourseName, 24 }) 25 ); 26 } 27 }); 28 }; 29};

html

1<!--new.html.erb--> 2 <input type="serch" id="coursenameform"> 3 <form name="areaform"> 4 <select id="color1"> 5 <option value="0">全地域</option> 6 <option value="101">北海道・東北のすべて</option> 7 <option value="1">北海道</option> 8 <option value="2">青森県</option> 9 <option value="3">岩手県</option> 10 <option value="4">宮城県</option> 11 <option value="5">秋田県</option> 12 <option value="6">山形県</option> 13 <option value="7">福島県</option> 14 <option value="102">関東のすべて</option> 15 <option value="8">茨城県</option> 16 <option value="9">栃木県</option> 17 <option value="10">群馬県</option> 18 <option value="11">埼玉県</option> 19 <option value="12">千葉県</option> 20 <option value="13">東京都</option> 21 <option value="14">神奈川県</option> 22 <option value="15">新潟県</option> 23 <option value="16">富山県</option> 24 <option value="17">石川県</option> 25 <option value="18">福井県</option> 26 <option value="19">山梨県</option> 27 <option value="20">長野県</option> 28 <option value="21">岐阜県</option> 29 <option value="22">静岡県</option> 30 <option value="103">北陸のすべて</option> 31 <option value="104">中部のすべて</option> 32 <option value="23">愛知県</option> 33 <option value="24">三重県</option> 34 <option value="105">近畿のすべて</option> 35 <option value="25">滋賀県</option> 36 <option value="26">京都府</option> 37 <option value="27">大阪府</option> 38 <option value="28">兵庫県</option> 39 <option value="29">奈良県</option> 40 <option value="30">和歌山県</option> 41 <option value="106">中国のすべて</option> 42 <option value="31">鳥取県</option> 43 <option value="32">島根県</option> 44 <option value="33">岡山県</option> 45 <option value="34">広島県</option> 46 <option value="35">山口県</option> 47 <option value="107">四国のすべて</option> 48 <option value="36">徳島県</option> 49 <option value="37">香川県</option> 50 <option value="38">愛媛県</option> 51 <option value="39">高知県</option> 52 <option value="108">九州・沖縄のすべて</option> 53 <option value="40">福岡県</option> 54 <option value="41">佐賀県</option> 55 <option value="42">長崎県</option> 56 <option value="43">熊本県</option> 57 <option value="44">大分県</option> 58 <option value="45">宮崎県</option> 59 <option value="46">鹿児島県</option> 60 <option value="47">沖縄県</option> 61 <option value="109">海外</option> 62 </select> 63 </form> 64 <button id="search">検索</button> 65 66 <ul id="add_test"> 67 </ul>

下画像のように、キーワードと都道府県を入力させ、検索結果がその下の5つのゴルフ場になります。(この処理はJS)この5つの部分をリンクにして、クリックすると、そのゴルフ場の名前をデータベースに保存したい。現状は、
jQueryで.append($("<li />", {text: data.Items[i].Item.golfCourseName,})でタグを生成しているだけになります。
イメージ説明

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

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

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

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

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

m.ts10806

2020/10/10 06:33

>JSからrailsに値を渡す サーバーサイドに渡したいのでしょうか クライアントサイドで扱いたいのでしょうか
m.ts10806

2020/10/10 07:19

渡した後、どう扱うつもりですか? そのあたりも含めて質問本文に追記してください。
hurousyotoku500

2020/10/10 07:27

どう扱うかまではまだ具体的にはきめていません。
guest

回答1

0

APIを叩いて返ってくるデータはjson形式だと思うのですが、それは合ってますかね?

たぶんjsonなので、そこから欲しいデータを取り出して、変数に代入し、フォームに入力させれば良いと思うのですが…

投稿2020/10/10 14:13

kokitail

総合スコア135

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

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

hurousyotoku500

2020/10/11 00:49

ご回答ありがとうございます。データ形式はjsonですね。 そのjsonデータを取得する処理はJSで、その値をどのようにrailsで処理したら良いかわからず困っております。
kokitail

2020/10/11 00:52

jsonから欲しい値は取り出せてますか?
hurousyotoku500

2020/10/11 01:02

はい、上記コードで問題なく表示できています。
kokitail

2020/10/11 01:07

そしたらフォームを用意しておいて、その中にjsonから取り出した値を入力して送信 -> コントローラを用意してデータを保存できないですか?
hurousyotoku500

2020/10/11 02:29

「フォームを用意しておく」とは、erb上でということでしょうか?
kokitail

2020/10/11 02:58

そうですね。そのほうが簡単かと思います
hurousyotoku500

2020/10/11 03:01

すみません、どのように書いたら良いか検討もつきません。ヒントいただけないでしょうか
kokitail

2020/10/11 03:17

先ほどから書いてる手順のとおりとしか言いようがないのですが、、、 アプリの構造がわからないのでなんとも言えませんがもう少し具体的に書くと次のような感じですかね APIを叩きにいくhtmlファイルにform_forなどでフォームを用意(urlを指定して登録するコントローラが動くようにする) jsでAPIから取得した値をinputに入力(用意したinputタグを取得してvalueをセット) データを登録するルーティングやコントローラが用意されてなければ作る必要があります こちらとしても何が分からないか分からないとアドバイスが難しいです。。。
hurousyotoku500

2020/10/11 06:57

情報追記させていただきました。そもそもになってしましますが、現状APIを叩く処理はJSですが、ここもruby(コントローラ)で書いた方が良いということでしょうか。
kokitail

2020/10/11 10:24

APIを叩くのはコントローラで叩かなくても大丈夫です 実装内容によってはそうしたほうがいい場合もありますが
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問