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

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

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

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

Ruby

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

Q&A

解決済

1回答

690閲覧

Rails tutorial log_inメソッドについて

on_off_on

総合スコア18

Ruby on Rails 5

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

Ruby

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

0グッド

0クリップ

投稿2018/06/18 08:38

お恥ずかしながらRails tutorialの中のログイン機能部分の実装について質問です

https://railstutorial.jp/chapters/basic_login?version=5.1#sec-logging_in

うまく質問できるかわかりませんが、
こちらのリンク先のリスト8.15のハイライトされてる
log_in userがどういう使われ方をしているのかがよくわからないです。

このlog_inの後のuserは引数になるんですか?
あとなぜlog_inメソッド内で@userなどのインスタンス変数が使われてないのでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

このlog_inの後のuserは引数になるんですか?

はい。実引数となります。

Rubyではメソッド呼び出し時の()は省略可能なので

ruby

1log_in(user) 2log_in user

この2つは等価です。

あとなぜlog_inメソッド内で@userなどのインスタンス変数が使われてないのでしょうか?

  • 単純に不要
  • インスタンス変数を束縛しては不便

ちょっと極端な例だけど

ruby

1module Helper 2 def sayA 3 puts @text 4 end 5 def sayB(text) 6 puts text 7 end 8end 9 10class A 11 include Helper 12 def initialize(text) 13 @text = text 14 end 15 16 def hello 17 if 午前中 18 txt = @text 19 @text = "こんにちわ #@text" 20 sayA 21 @text = txt 22 23 sayB("こんにちわ #@text") 24 end 25 end 26end

投稿2018/06/20 17:43

asm

総合スコア15147

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

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

on_off_on

2018/06/20 23:58

おお めっちゃよくわかりました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問