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

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

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

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

Ruby on Rails 6

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

Q&A

解決済

1回答

694閲覧

RubyやRails におけるnewの使用方法

kaji120

総合スコア39

Ruby

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

Ruby on Rails 6

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

0グッド

0クリップ

投稿2021/04/30 01:30

分からないこと

Webアプリを作成中にnewについて分からないことがあったので質問させて頂きます。
Rubyでnew要素を使用する際はクラスの外部からインスタンスを生成するためにクラス名.newで指定したクラスのインスタンスを作成する認識でしたが、メソッド内でのnew要素の使用は可能なのでしょうか?
また、該当のソースコードに記載させて頂いたnew要素はnewを単独で使用しているようにも見えます。この場合はどういった理解をすればよろしいのでしょうか。以下2点のご回答宜しくお願い致します。

・newインスタンスは単独で使用可能なのか
・newインスタンはメソッド内で使用する際の考え方

該当のソースコード

def new_from_item(item) @item = item @volume_info = @item['volumeInfo'] new( googlebooksapi_id: @item['id'], authors: @volume_info['authors'], image: image_url, published_at: @volume_info['publishedDate'], title: @volume_info['title'], ) end

試したこと

リファレンスの参照

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

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

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

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

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

guest

回答1

0

ベストアンサー

newインスタンス というのはおかしいですね、newメソッドの意味?

で、newはどこでも使えます。
new単独で使えるのは、selfにnewがある場合。
で、
該当のソースコード でnewが単独でつかわれていますが、この new_from_item がclassメソッドならありです。selfはクラスですから。
インスタンスメソッドだと、インスタンスにnewが定義されているならありです。
が、まぁそれはないでしょうから、これクラスメソッドですよね?
抜粋なのでわからんです

投稿2021/04/30 01:39

winterboum

総合スコア23401

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

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

kaji120

2021/04/30 02:15

早速のご回答ありがとうございます。 失礼しました。newメソッドの意味ででした。 おっしゃる通り、使用されていたのはクラスメソッド内でした。 ということは、クラスメソッド内のnewはClass.newと同じ意味になるということでしょうか?
winterboum

2021/04/30 04:34

はいそうです。 メソッドの左にあるのはあ (メソッド)のレシーバーといわれますが、それが省略されるのは self. のときです。 クラスメドッドでは self はクラスですので、 new == self.new == Class.new です
kaji120

2021/04/30 23:46

丁寧にありがとうございました!理解できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問