やりたいこと
ナビゲーションバーから、楽天の商品を検索。
どのページからも、検索フォームから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からの情報を取得出来ます。
ナビゲーションバーから実行するには、何が必要か教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。