前提・実現したいこと
1 railsアプリで楽天商品検索APIを使用していてパラメータとしては返ってきているが表示方法がわからないです。
2 if.@items.present?で@itemsの有無を確認している。binding.pryで確認すると値はあるがelse側が実行されてしまう。
該当code
views/reads/search.html.erb
<h1>楽天商品検索のテスト</h1> <div class="uk-child-width-1-2@m" uk-grid> <% if @items.present? %> <% @items.first(10).each do |item| %> <%= item %> <% end %> <% else %> <p>該当の書籍は見つかりません</p> <% end %> </div>
reads_controller.rb
class ReadsController < ApplicationController before_action :require_user_logged_in def search #書籍の検索機能に使用する if params[:keyword] @items = RakutenWebService::Ichiba::Item.search(keyword: params[:keyword]) # This returns Enumerable object end end 省略 end
検索フォームのnavber
<div class="uk-navbar-right"> <%= form_with(url: reads_search_path, method: :get) do |f| %> <%= f.label :keyword, 'キーワード検索' %> <%= f.text_field 'keyword', id: params[:keyword] %> <%= f.submit "検索" %> <% end %> </div>
routes.rb
Rails.application.routes.draw do ##該当箇所のみ表示 root to: 'toppages#index' get 'reads/search' end
検索実行時のbinding.pryでのparameter値
1: <h1>楽天商品検索のテスト</h1> 2: <div class="uk-child-width-1-2@m" uk-grid> 3: <% if @items.present? %> 4: <% @items.first(10).each do |item| %> 5: <% binding.pry %> => 6: <%= item %> 7: <% end %> 8: 9: <% else %> 10: <p>該当の書籍は見つかりません</p> 11: <% end %> [1] pry(#<#<Class:0x00007fbfe21d8928>>)> item => #<RakutenWebService::Ichiba::Item:0x00007fbfeae50158 @params= {"mediumImageUrls"=>["https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3977/9784774193977.jpg?_ex=128x128"], "pointRate"=>1, "shopOfTheYearFlag"=>0, "affiliateRate"=>3, "shipOverseasFlag"=>0, "asurakuFlag"=>1, "endTime"=>"", "taxFlag"=>0, "startTime"=>"", "itemCaption"=> "言語仕様からテスト駆動開発・デバッグ技法まで Software Design plusシリーズ 伊藤淳一(プログラミング) 技術評論社プロ オ メザス ヒト ノ タメノ ルビー ニュウモン イトウ,ジュンイチ 発行年月:2017年12月 予約締切日:2017年11月24日 ページ数:471p サイズ:単行本 ISBN:9784774193977 伊藤淳一(イトウジュンイチ) 1977年生まれ。大阪府豊中市出身。学生時代はミュージシャンを志し、就職もせずにバンド活動を続けていたが、ひょんなきっかけでIT業界に就職。Sler、社内SEを経て、2012年から株式会社ソニックガーデンでRubyプログラマとしてのキャリアをスタート。ブログやQiitaなどで公開したプログラミング関連の記事多数(本データはこの書籍が刊行された当時に掲載されていたものです) 本書を読み進める前に/Rubyの基礎を理解する/テストを自動化する/配列や繰り返し処理を理解する/ハッシュやシンボルを理解する/正規表現を理解する/クラスの作成を理解する/モジュールを理解する/例外処理を理解する/yieldとProcを理解する/Rubyのデバッグ技法を身につける/Rubyに関するその他のトピック Railsをやる前に、Rubyを知ろう。みなさんが「Rubyをちゃんと理解しているRailsプログラマ」になれるように、Rubyの基礎知識から実践的な開発テクニックまで、丁寧に解説します。 本 パソコン・システム開発 プログラミング その他", "catchcopy"=>"【楽天ブックスならいつでも送料無料】", "tagIds"=>[], "smallImageUrls"=>["https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3977/9784774193977.jpg?_ex=64x64"], "asurakuClosingTime"=>"12:00", "imageFlag"=>1, "availability"=>1, "shopAffiliateUrl"=>"", "itemCode"=>"book:18852922", "postageFlag"=>0, "itemName"=>"プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ) [ 伊藤淳一(プログラミング) ]", "itemPrice"=>3278, "pointRateEndTime"=>"", "shopCode"=>"book", "affiliateUrl"=>"", "giftFlag"=>0, "shopName"=>"楽天ブックス", "reviewCount"=>2, "asurakuArea"=>"群馬県/埼玉県/千葉県/東京都/神奈川県/新潟県/山梨県/長野県/岐阜県/静岡県/愛知県/三重県/滋賀県/宮城県/福島県/茨城県/栃木県", "shopUrl"=>"https://www.rakuten.co.jp/book/", "creditCardFlag"=>1, "reviewAverage"=>4.5, "shipOverseasArea"=>"", "genreId"=>"209129", "pointRateStartTime"=>"", "itemUrl"=>"https://item.rakuten.co.jp/book/15209044/"}>
デバッグ状態ではなく正常に終了した際のターミナル上でのログ
Started GET "/reads/search?utf8=%E2%9C%93&keyword=Ruby&commit=%E6%A4%9C%E7%B4%A2" for ::1 at 2021-06-02 22:23:35 +0900 Processing by ReadsController#search as JS Parameters: {"utf8"=>"✓", "keyword"=>"Ruby", "commit"=>"検索"} User Load (0.9ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 9 LIMIT 1 ↳ app/helpers/sessions_helper.rb:3 Rendering reads/search.html.erb within layouts/application Rendered reads/search.html.erb within layouts/application (1020.9ms) Rendered layouts/_navbar.html.erb (31.6ms) Rendered layouts/_flash_messages.html.erb (16.4ms) Completed 200 OK in 1487ms (Views: 1459.1ms | ActiveRecord: 0.9ms)
サイトの表示
](19f34b03d0592225c9246813b6d456e3.png)
試したこと
<% item.name %>などをviewで実行したが何も表示されず、search.html.erbのif文でelse値が毎回返ってきてしまいましたpatameterでは値の取得ができているので表示できそうな気がするのですが、すいませんわかりませんでしたご教授していただけると助かります.
あなたの回答
tips
プレビュー