🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

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

Q&A

解決済

1回答

536閲覧

Ruby Userクラスの作成

kaikubo_ko

総合スコア13

Ruby

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

0グッド

0クリップ

投稿2021/01/25 09:35

Rubyで下記の実行結果を表示したいのですが、コード下部の性別別による表示がうまくいかず、解決方法をご教授いただけないでしょうか

【記述したコード】 class User attr_accessor :last_name attr_accessor :first_name attr_accessor :gender attr_accessor :age def initializer(last_name, first_name, gender, age ) self.last_name = last_name self.first_name = first_name self.gender = gender self.age = age end def print_greetings puts "今日は。#{self.last_name} #{self.first_name} です。性別は#{self.gender}です。 歳は#{self.age}です。" end def male return self.gender == "男" end end user1 = User.new user1.last_name = '佐藤' user1.first_name = '一郎' user1.gender = '男' user1.age = 24 user1.print_greetings if user1.male? puts "#{user1.last_name}は男性です!" else puts "#{user1.last_name}は女性です!" end
【実際に実行された結果】 今日は。佐藤 一郎 です。性別は男です。 歳は24です。 Traceback (most recent call last): /home/ec2-user/environment/Ruby/progate.rb:34:in `<main>': undefined method `male?' for #<User:0x00000000021f6470> (NoMethodError) Did you mean? male
【実行したい結果】 こんにちは。佐藤一郎です。性別は男です。歳は24です。 佐藤は男性です!

原因としては、下記で実行しするmaleメソッドが正しく定義されていないためだと考えられます。
maleというメソッドを作成して「男性の場合trueを表示」、という動きになると思うのですが記述がわからず困っています・・・

if user1.male? puts "#{user1.last_name}は男性です!" else puts "#{user1.last_name}は女性です!" end

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

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

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

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

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

guest

回答1

0

ベストアンサー

male? メソッドを呼び出していますが、定義されているメソッドは male です。

def male

def male?

に変更してください。
もしくは、

if user1.male?

if user1.male

に変更してください。

投稿2021/01/25 09:46

neko_daisuki

総合スコア2090

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

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

kaikubo_ko

2021/01/25 09:48

ありがとうございます! メソッド名が間違えていたんですね。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問