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

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

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

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

Ruby

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

API

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

Q&A

解決済

1回答

1086閲覧

[Rails] ナビゲーションバーから楽天APIで検索し、画面遷移したい

kioak

総合スコア20

Ruby on Rails 5

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

Ruby

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

API

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

0グッド

0クリップ

投稿2019/05/04 14:23

やりたいこと

ナビゲーションバーから、楽天の商品を検索。
どのページからも、検索フォームからproducts_controllerのsearchメソッドを実行できる状態が理想です。

現状のコード

ナビゲーションバーの検索フォーム部分↓

haml

1%form.form-inline.my-2.my-lg-0 2 = form_tag url: search_path, method: :get do 3 %input.form-control.mr-sm-2{:name => "keyword", :placeholder => "商品を検索", :type => "search", value: params[:keyword]} 4 %button.btn.btn-outline-success.my-2.my-sm-0{:type => "submit"} 検索 5

products_controller.rbのsearchメソッド ↓

ruby

1def search 2 if params[:keyword].blank? 3 flash.now[:danger] = "キーワードを入力してください" 4 render nothing: true 5 else 6 products = RakutenWebService::Ichiba::Item.search(params[:keyword]) 7 8 products_array = [] 9 products.each do |item| 10 product = Product.find_or_initialize_by(title: item['itemName']) 11 # product.price = item['itemPrice'] 12 product.image_url = item['smallImageUrls'][0]['imageUrl'] 13 product.url = item['affiliateUrl'] 14 15 if product.save 16 products_array << product 17 else 18 render :search 19 end 20 @products = Kaminari.paginate_array(products_array).page(params[:page]).per(PER) 21 end 22 end 23 end

routes.rb ↓

ruby

1 get 'search' => 'products#search'

状況

検索フォームは表示されています。
しかし、そこに文字を入力してEnterを押すと、URLに下記のようなものが入るのみです。

plain

1http://localhost:3000/?utf8=%E2%9C%93&authenticity_token=SJQb5uUAC72DiPV2xs3iQ7KkGW5CXjggUdwzjeMiFRPez%2FM42LJBhYgdA7C5HCB36Nug7XUSTqJV1MduskQhGw%3D%3D&keyword=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0

localhost:3000/の後にsearchが来れば検索出来ます。
http://localhost:3000/search とURLに打ち込んで、そこで検索をかけると、そのページでは楽天のAPiからの情報を取得出来ます。

ナビゲーションバーから実行するには、何が必要か教えていただきたいです。

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

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

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

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

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

guest

回答1

0

自己解決

hamlのインデントを直したらなおりました ...

投稿2019/05/04 14:35

kioak

総合スコア20

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問