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

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

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

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

Ruby on Rails

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

Q&A

解決済

4回答

1536閲覧

【Rails】#<comment:0x00000 ~> ←これって何ていうんですか?

kaori_oka

総合スコア176

Ruby

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

Ruby on Rails

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

0グッド

1クリップ

投稿2020/01/31 06:58

編集2020/01/31 07:53

前提・実現したいこと

railsとかrubyとかで#<comment:0x00000 ~>こんな感じのものが
putsやらコンソールで表示されて、
どういう意味のものなのか、今何が起こっているかを調べたいですが、
イマイチ名前がわからなくてなんと検索したらいいかわからないです。

  • ruby XXが表示される
  • rails XXXから●●だけ取り出したい

など、検索したいですが、これって通称なんて呼びますか?

たとえばこんな時に出る

rb

1@user 2 #=> #<User:0x000000000beaa578> 3 4@user.name 5 #=> 田中太郎

インスタンス変数に、method?column?指定しない場合にこんな感じに出ます。
以前GEMを使用していて、取り出した値を変数にいれてそれをputsで表示した場合下記のようになりました。

rb

1require "selenium-webdriver" 2driver = Selenium::WebDriver.for :chrome 3~省略~ 4page_title = driver.find_elements(:xpath, "//title") 5puts page_title 6# => #<Selenium::WebDriver::Element:0x00000000065c9468>

このような#<XXXX>が出た時はこの中に情報が入っているというのはわかったのですが、名称がわからず、

#<XXXX>からurlを取得 みたいな検索がうまくいかないのです。

なので、この名称を知っている方いたら教えてほしいです。

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

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

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

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

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

winterboum

2020/01/31 07:39

それが出てくるのはどういう時か例を書いたほうが回答を得やすいです
kaori_oka

2020/01/31 07:54

追記しました! なんと表現したらいいか、情報の入っている繭だと心の中で呼んでいるのですが、正体はあんまりわかってないです。
kaori_oka

2020/01/31 07:55

正体を調べるために検索したいですが、名前がわからないという... すみません無知で...
guest

回答4

0

to_s メソッドで文字列化された結果かと。
to_s が再定義されていなければ、クラス名とオブジェクトIDが文字列として返されます。
https://docs.ruby-lang.org/en/2.7.0/Object.html#method-i-to_s

$ irb irb(main):001:0> a = Object.new => #<Object:0x000055dc6fcb20b8> irb(main):002:0> a => #<Object:0x000055dc6fcb20b8> irb(main):003:0> a.to_s => "#<Object:0x000055dc6fcb20b8>"

投稿2020/01/31 08:24

編集2020/01/31 08:26
taichi730

総合スコア318

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

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

kaori_oka

2020/01/31 08:31

いつもありがとうございます! メソッドによって文字列化されてしまったものを.hogehogeと supportされたメソッドなので取り出す感じなんですね!
guest

0

irb や rails console での話ですね
#=>  は、その前に打ち込んだ式の結果は というrubyの慣用句です

User:0x000000000beaa578
のような表示になる場合は、式の結果が class や その インスタンスそのものの様に、単純な値で表示出来ないものの場合に
User:  class User のインスタンスで、
0x000000000beaa578  その object_id はこれこれ

という意味です。
bject_idをもらってもどうつかうんだ!ということはありますが

投稿2020/01/31 08:18

winterboum

総合スコア23284

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

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

kaori_oka

2020/01/31 08:33

いろんな情報がはいっているコレは objectiD:XXXXみたいな感じにrubyが教えてくれてるってってことなんですね。 概念がちょっとわかってくるとナルホドとなるのですが、知らない状態で見るとエラーと勘違いしますよね... もう慣れていくしかないですが
guest

0

ベストアンサー

この名称を知っている方いたら教えてほしいです。

これ自体はデバッグ用の出力なので、プログラムから活用するものではありません

Object#inspect

inspect メソッドをオーバーライドしなかった場合、クラス名とインスタンス変数の名前、値の組を元にした文字列を返します。

投稿2020/01/31 08:18

maisumakun

総合スコア145121

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

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

kaori_oka

2020/01/31 08:23

変数に「.inspect」つけてみたら、内容物が見えてすっごいわかりやすかったです! まずは「.inspect」で透かして見てみて考えるに落ち着きました。
guest

0

クラス名とオブジェクトId(を2倍して16進数表記したもの)です

投稿2020/01/31 08:12

編集2020/01/31 08:14
ozwk

総合スコア13512

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

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

kaori_oka

2020/01/31 08:35

objectIDは16進数表記だったのですか いろんなものを含んだ塊についてる囚人番号みたいなものと思うようにします
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問