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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

460閲覧

配列から値の数を数える方法

tomtom1

総合スコア168

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/05/11 06:39

###知りたいこと
配列から値の数を数える方法を知りたいです。
new.html.erbにて、複数回答可で値を取得しています。
以下のように書きていますが、countの数字が0のため、うまく取得できていないです。

View

1<h3>・旅行先(複数回答可)</h3> 2 <input type="checkbox" name="travel[]" value="中国">中国 3 <input type="checkbox" name="travel[]" value="韓国">韓国 4 <input type="checkbox" name="travel[]" value="その他">その他

取得後のDBです。

DB

1=> #<User id: 1, sex: "男性", age: "30-34歳", travel: "[\"中国\", \"韓国\", \"その他\"]", created_at: "2020-04-18 13:29:58", updated_at: "2020-04-18 13:29:58">

Controllerで韓国に行ったことのあるユーザーをcountします。

Controller

1@travel = User.where(travel: ["韓国"]).count  #こちらもだめ 2@travel = User.where(travel: "韓国").count   #こちらもだめ

Viewで、数字を表示します。

View

1<%= @travel %>

お分かりの方、ぜひお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

あまりよいデータ構造では無いので、治すことを薦めます。
いまのままでやるとすると
@travel = User.where("travel like ?","%韓国%").count

直すとするなら
中韓その他 の3択でなく増えるでしょうから、
model Travel を作り行き先を countryとでもして、1:多でつくる。
Userに has_many :trabels を定義しておけば
@travel = User.joins(:travls).where("travel.country" => "韓国").count

投稿2020/05/11 07:24

winterboum

総合スコア23376

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

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

tomtom1

2020/05/11 08:26

ご回答ありがとうございます!解決しました! また、アドバイスまでありがとうございます。内容全て把握しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問