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

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

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

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

Ruby on Rails

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

Q&A

解決済

2回答

756閲覧

[Rails]全ての情報が一致するとtrueを返したい

Maaxuhbd

総合スコア7

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2021/10/12 10:14

やりたいこと

@order_detailsの中のカラム名production_statusがどちらも"completed"だった場合→true
そうでなかった場合→falseを返したい。

@order_detailsの中身

ruby

1[#<OrderDetail:0x00007fc87f0ffda8 id: 1, order_id: 1, item_id: 1, production_status: "completed", amout: 10, price: 1100, created_at: Tue, 12 Oct 2021 01:15:16 JST +09:00, updated_at: Tue, 12 Oct 2021 19:05:24 JST +09:00>, 2 #<OrderDetail:0x00007fc87f0ffc68 id: 2, order_id: 1, item_id: 2, production_status: "waited", amout: 10, price: 1650, created_at: Tue, 12 Oct 2021 01:15:16 JST +09:00, updated_at: Tue, 12 Oct 2021 18:49:28 JST +09:00>]

ruby

1def update 2 #注文した全ての注文詳細 3 @order_details=OrderDetail.where(order_id: params[:id]) 4 ###if文の中身がわかりません。### 5 if @order_details.all?{|w| w.production_status=="completed"} 6 @order_detail.order.update(status: 3) 7 end 8 redirect_to admin_order_path(@order_detail.order_id) 9 end

初歩的な質問ですがよろしくお願い致します。

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

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

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

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

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

mather

2021/10/12 10:43

現状はなにが問題だと感じているのでしょうか? 「関数の実装方法がわからない」「実装をしたがエラーが出る」「実装の理解ができない、うまく動いている理由がわからない」「もっと良い書き方が知りたい」などなど。
Maaxuhbd

2021/10/12 10:50

「if文の書き方を知りたいです」 現状では、id 1、2のproduction_statusカラムの片方が"completed"だった場合、tureが返ってしまいます。 そうでなく、両方が"completed"だった場合、true。それ以外はfalseを返すプログラムを書きたいです。
mather

2021/10/12 11:13 編集

であれば、ifの条件式であるこの部分がちゃんと期待通りになっていると思いますよ。 @order_details.all?{|w| w.production_status=="completed"}
Maaxuhbd

2021/10/12 11:23

できてました。すみません、ありがとうございます。
guest

回答2

0

自己解決

現状のコードで実装できていました。

投稿2021/10/12 11:23

Maaxuhbd

総合スコア7

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

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

0

順番に情報をチェックしていき、一致しないものが出てきた時点で、falseを返す、でいいです
そして、最後に(不一致が出なかったら)trueを返せばいいかと。

投稿2021/10/12 10:19

y_waiwai

総合スコア88042

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

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

Maaxuhbd

2021/10/12 10:39

最後に不一致=が出なかったらを判断する方法がわかりません。初歩的ですが教えて頂きたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問