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

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

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

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

Q&A

1回答

879閲覧

hoge.industryが同じ値でhoge.tel既に存在する場合のプログラムの書き方

KOO_

総合スコア58

Ruby on Rails

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

0グッド

0クリップ

投稿2020/07/15 02:36

編集2020/07/15 09:19

こんにちは。現在プログラムにおいて不明点があり質問させて頂きます。

タイトルにもある

hoge.industryが同じ値でhoge.tel既に存在する場合のプログラムの書き方

についてとなります。

現在プログラムにおいて

next if self.where(tel: hoge.tel).where().count > 0

で電話番号が重複する場合インポートを行わないプログラムを記述しております。

これを

hoge.industryが同一の値で、hoge.telが既に存在する場合は弾き、
hoge.industryが別の値で、hoge.telが既に存在する場合はインポート

するプログラムを組みたいのですが、どなたかご教示頂けないでしょうか?

def self.import(file) save_cont = 0 CSV.foreach(file.path, headers:true) do |row| customer = find_by(id: row["id"]) || new customer.attributes = row.to_hash.slice(*updatable_attributes) next if self.where(tel: customer.tel, industry: customer.industry) > 0 next if self.where.not(industry: nil) customer.save! save_cnt += 1 end save_cont end

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

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

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

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

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

maisumakun

2020/07/15 02:39

hoge.industryが「何と」同じ値なのですか?
KOO_

2020/07/15 02:47

ありがとうございます。 hoge tel=0120 industry=ABCが既にと入っていたとして hoge tel=0120 industry=ABC → インポートせず除外 hoge tel=0120 industry=DEF → インポート するような設定にしたいです。
guest

回答1

0

単にwhereの中身をindustrytelの双方一致にすればいいと思うのですが、それでは不満でしょうか?

投稿2020/07/15 02:49

maisumakun

総合スコア146018

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

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

KOO_

2020/07/15 03:19

ありがとうございます。双方一致とは具体的にどう言うことでしょうか?理解不足ですみません。
maisumakun

2020/07/15 03:20

where(tel: hoge.tel, industry: hoge.industry)
KOO_

2020/07/15 08:55

ありがとう御座います。 上記だとindustryの中身を変えてもインポート出来ないようです。。
maisumakun

2020/07/15 08:57

コード全体を書いていただけますか?
KOO_

2020/07/15 09:18

ご丁寧にありがとう御座います。先ほど追記致しました。 よろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問