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

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

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

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

Q&A

解決済

2回答

1535閲覧

Hashが入っている配列の値をView内で全て表示させたい(Ruby on rails)

hirasho17

総合スコア12

Ruby on Rails 5

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

0グッド

0クリップ

投稿2018/10/21 11:00

編集2018/10/21 14:43

21日23:45追記
申し訳ないのですが、下記のエラーメッセージはViewでなくてコントローラー側ででていました。
この表示させる部分まで処理がたどり着いてない状態で、勘違いしたまま投稿してしまっていたので、この問題についてはちょっと自分で考えてみます。

前提・実現したいこと

キーワードからWebサイトの情報に対し検索をかけて、表示させる機能を作成しようとしています。
Webスクレイピングにより表示させたいデータを抽出し配列に保存しました。
Viewで表示させようとしているところで詰まっております。

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

コントローラ側で、下記のように配列内にHashを複数入れてあります。
search_result = [{"name"=>"Roman", "price"=>"¥ 2,000 (税込)"},{"name"=>"Moira", "price"=>"¥ 3,000 (税込)"}]
二つのHashが入ってます。これを一つずつ取り出して表示させたいのですが、上手くいきません。
下記のようなエラーメッセージも出ていますが、そもそもeach文を使えばいいのかわかりません。each文の場合|result|の中身の指定が間違っていると思うのですが・・・

エラーメッセージ:NoMethodError (undefined method `each' for nil:NilClass):

該当のソースコード

Ruby

1 2 <% search_result.each do |result| %> 3 <div class="result-name"><%= result.name %></div> 4 <div class="result-price"><%= result.price %></div> 5 <% end %>

試したこと

色々とサイトを巡ってみたのですが、上記のようなHashを取り出しViewに表示させる書き方を書いてあるところが見つかりませんでした・・・
初心者でわからないことも多く恐縮ですが、アドバイスなどありましたらぜひお願いいたします。

補足情報(FW/ツールのバージョンなど)

使用言語・フレームワーク:Ruby(ver2.4.1)、Rails(ver5.2.1)

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

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

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

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

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

guest

回答2

0

自己解決

下記の書き方で取り出せました。

ruby

1 <% search_result.each do |result| %> 2 <div class="result-name"><%= result["name"] %></div> 3 <div class="result-price"><%= result["price"] %></div> 4 <% end %>

Hashが配列に入っている場合は[]内にkeyを指定すると抜き出せるようです。
見て頂いた方ありがとうございました。

投稿2018/10/22 08:20

hirasho17

総合スコア12

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

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

0

search_result @search_result に置き換えてみるのはどうでしょうか。

投稿2018/10/21 11:48

troch

総合スコア349

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

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

hirasho17

2018/10/21 14:44

回答ありがとうございます。 追記したとおりですので、後ほど確かめてみます。お手数をおかけしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問