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

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

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

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

Ruby on Rails

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

Q&A

1回答

681閲覧

楽天商品情報を表示する方法について

macchan_0425

総合スコア0

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2021/07/13 06:49

編集2021/07/13 23:35

前提・実現したいこと

現在勉強のために、cloud9で楽天APIを使用して、楽天から商品を検索する機能を作成してみました。
しかし、検索してみると、以下のようなエラーメッセージが発生しました。

初学者のため至らぬ点もあると思いますが、よろしくお願い致します。

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

RakutenWebService::WrongParameter in Goods#search Showing /home/ec2-user/environment/rakutensearch/app/views/goods/_good_list.html.erb where line #2 raised: keyword is not valid <% if @goods.present? %> <% @goods.each do |good| %> ←ここでエラー <div class="list"> <% if good.image_url %> <%= link_to (image_tag(good.image_url, style: "width: 70px;height: 100px;display: inline-block;")), good.url %> <% end %>

該当のソースコード

Ruby

1###goods_controller.rb 2class GoodsController < ApplicationController 3 def search 4 if params[:keyword] 5 @goods = RakutenWebService::Ichiba::Item.search(keyword: params[:keyword]) 6 7 end 8 end 9end 10

Ruby

1###search.html.erb 2<h1>Rakuten search</h1> 3<div class='content'> 4 <div id="search-box"> 5 <%= form_tag('/', method: :get) do %> 6 <%= text_field_tag :good, "", id: "good_search", name: "keyword", placeholder: "キーワードを打ち込んでください", style: "width: 200px; "%><button title="検索" type="submit">検索</button> 7 <% end %> 8 </div> 9 <h2>検索結果</h2> 10 <div id='good_list'> 11 <%= render partial: 'good_list' %> 12 </div> 13</div>

Ruby

1###_good_list.html.erb 2<% if @goods.present? %> 3 <% @goods.each do |good| %> 4 <div class="list"> 5 <% if good.image_url %> 6 <%= link_to (image_tag(good.image_url, style: "width: 70px;height: 100px;display: inline-block;")), good.url %> 7 <% end %> 8 9 <%= good.title %> 10 </div> 11 <% end %> 12<% end %>

Ruby

1###search.html.erb 2RakutenWebService.configure do |c| 3 c.application_id = ENV["APPLICATION_ID"] 4 # c.affiliate = ENV["AFFILIATE_ID"] 5 # 環境変数を使用 6end

試したこと

参考サイトではcontroller内で@itemsとなっていたのですが、
viewで使用している変数が@goodsだったのでそちらに変更しています。

###参考サイト

https://freesworder.net/rakuten-api-rails/
[【Rails基礎】楽天APIで商品検索アプリを作ってみた]

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

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

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

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

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

guest

回答1

0

楽天ウェブサービスを確認したところ、キーワード検索で

「各検索キーワードは半角2文字 もしくは 全角1文字 以上で指定する必要があります。
また例外として、各検索キーワードがひらがな・カタカナ・記号の場合は2文字以上で指定する必要があります。」

とのことでしたので、2字以上のキーワードを入力したところ、

keyword is not valid

のエラーは消えました。

その代わりに、

NoMethodError in Goods#search
Showing /home/ec2-user/environment/rakutensearch/app/views/goods/_good_list.html.erb where line #4 raised:

undefined method `image_url' for #RakutenWebService::Ichiba::Item:0x00007f6c84ad82c8
Did you mean? image_flag
Extracted source (around line #4):
2 <% @goods.each do |good| %>
3 <div class="list">
4 <% if good.image_url %>
5 <%= link_to (image_tag(good.image_url, style: "width: 70px;height: 100px;display:
inline-block;")), good.url %>
6 <% end %>

というエラーが発生しました。

投稿2021/07/13 23:38

編集2021/07/13 23:41
macchan_0425

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問