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

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

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

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

Q&A

解決済

3回答

6848閲覧

rubyのmethodで=をつける意味

ayu

総合スコア212

Ruby

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

0グッド

1クリップ

投稿2016/06/22 13:18

こんばんわ。

たまにメソッドで=を見かけるのですが、どういう意味なんでしょうか?

paperclipのgemでこういうのを見かけたのですが、意味がわかりませんでした。

https://github.com/thoughtbot/paperclip/wiki/Attachment-downloaded-from-a-URL

class User < ActiveRecord::Base attr_reader :avatar_remote_url has_attached_file :avatar def avatar_remote_url=(url_value) self.avatar = URI.parse(url_value) # Assuming url_value is http://example.com/photos/face.png # avatar_file_name == "face.png" # avatar_content_type == "image/png" @avatar_remote_url = url_value end end

どういうことなのか、よろしければ教えていただきたいですm(_ _)m

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

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

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

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

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

guest

回答3

0

意味が無いという回答はちょっとどうかと思いますが、
ググってみるとちゃんと「要素代入関数」という名前が付いているようですね。

http://ztbuz.hateblo.jp/entry/2013/12/29/024103

投稿2016/06/22 13:48

Mr_Roboto

総合スコア2208

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

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

ayu

2016/06/22 14:11

こんな名前があったのですね・・・ ググり方が甘かったです>_< ありがとうございます!
guest

0

意味は特にありません。メソッド名の一部です。ただしメソッド名の末尾でのみ使用可能。
呼び出し時に、代入っぽく見えるという利点があるので、代入っぽいメソッドに使います。
イコールの前後に空白を入れてもOKです。

Ruby

1foo.avatar_remote_url = "http://~~"

投稿2016/06/22 13:41

otn

総合スコア84423

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

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

otn

2016/06/22 13:57

ああ、意味が無いというのは語弊がありました。 文法的には意味が無いと言うことです。メソッド名末尾の`?`や`!`と同じ。 慣習的に使い方が決まっているので、そういうレベルでは意味があります。
ayu

2016/06/22 14:12

慣習的に使われていたのですね。 いや、知りませんでした! ただ、今回で意味がわかりスッキリしました。 ありがとうございます!
Mr_Roboto

2016/06/22 14:17

こちらこそ失礼しました、私も知らなかったのでへ〜と思って、名前も付いてるのに意味が無いといわれてしまっては可哀想じゃないかーw と思ったもので。
guest

0

ベストアンサー

普通なら, avatar_remote_url= メソッドは, 次の様に使いますね。

ruby

1user = User.new 2user.avatar_remote_url=('http://foo')

でも ruby では () を省略できるので

ruby

1user.avatar_remote_url= 'http://foo'

と代入文に見えるように書くことができます。

rails の db/migreation の書き方も、() を省略して書いているだけで、どれもメソッド呼び出しをしてるのです。

投稿2016/06/22 13:50

katoy

総合スコア22324

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

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

ayu

2016/06/22 14:10

使い方を提示していただき、ありがとうございますm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問