おさとの雑記帳

日々の学習のアウトプットに使っていきます!

『頭を「からっぽ」にするレッスン』読んでみた

結論

  • 好きな時に、マインドフルネスな状態になることを目指せそう

はじめに

何か調べている時に、どこからともなく別の思考が流れてくること、ありませんか?私はよくあります。

Rubyの勉強をしていたはずなのに、「AWSとHerokuそれぞれのメリット・デメリットってなんだろ」「他にやるべきことなんだったっけ?」「Slack来てないかな」「ご飯どうしよ」などなど。何かを調べながら、別のことを考えている、といった状態です。

もちろんそれぞれについて、同時に深く思考できてるわけもなく、ただただ生産性が下がっているように感じます。

こんな状況を変えるべく、本書を手に取りました。

瞑想とマインドフルネス

頭がからっぽな状態 = マインドフルネスという状態と言えそうです。

マインドフルネスな状態になるためには瞑想という手段を用いる必要があります。

恥ずかしながらマインドフルネスと瞑想は同義であると捉えていましたが、実際は意味合いが異るようです。

  • マインドフルネス:気を逸らさずに、「今、ここ」に存在することを意味し、心を落ち着け、一切のこだわりも予断も捨て自然な状態を保つこと。
  • 瞑想:今この瞬間をじかに体験すること。古今東西、あらゆる瞑想は基本的には集中と自己理解のいずれか、あるいは両方を軸にしている。

瞑想の目的は、意識をトレーニングし、自身の考え方とその理由を理解し、その過程を客観的に把握することです。

瞑想をしていると、いつの間にか雑多な思考が現れています。これを押さえつけようとせず、一歩引いて客観的に「思考が現れている」ことを認識し、また内部に意識を向けることが重要です。

実際にやってみての感想

詳しいやり方の説明は本書に任せたいと思います。

実際にやってみて、いかに自分の意識が散っているか、そして抑え込もうとしているかがわかりました。

湧き上がってくる思考を悪とせず、自然なものとして認め、また自分の内部に意識を戻すことで、同時に思考していたものを減らせることを感じました。

まとめ

  • 瞑想とマインドフルネスの違いがわかった
  • さまざまな思考が湧き上がったときの自身の対処の悪さがわかった
  • 瞑想によって、湧き上がってくる思考を受け入れられ、一つの思考に集中する(マインドフルネスな状態になる)ことができそう

Railsの練習帳を読んでみた

このブログ初の記事になります!

igaigaさんの Railsの練習帳を読んで得た知見をアウトプットしていきます。

結論

  • 規約から外れた関連付けにおいて双方向関連付けを行う場合、inverse_of の設定が必要になる。

双方向関連付け

関連付けにおいて、規約から外れた名前を使う時には、双方向関連付けを自動認識してくれません。

例えば以下のような関連のコードにおいては、双方向関連付けを自動で認識してくれます。

class User < ApplicationRecord
  has_many :books
end

class Book < ApplicationRecord
  belongs_to :user
end

しかし、以下のようなコードだと双方向関連付けが自動では認識されません。

class User < ApplicationRecord
  has_many :books
end

class Book < ApplicationRecord
  belongs_to :author, foreign_key: "user_id", class_name: "User"
end

一見うまく動作しそうですよね 👀

確認してみましょう。

user = User.first
book = user.books.first

user.name #=> "hoge"
book.author.name #=> "hoge"

user.name = "fuga"
user.name #=> "fuga"
book.author.name #=> "hoge"

このように、user.namebook.author.name の実行結果が違います。

これが 規約から外れ、双方向関連付けが自動で認識されなかった ということです。

では一体どのように解決したらいいのでしょうか。

inverse_of を使う

手動で双方向関連付けを設定する必要があるのですが、これは inverse_of を両者に設定することで解決できます。

(ちなみに inverse は「逆」という意味だそうです。)

実際に使い方を見てみましょう。

class User < ApplicationRecord
  has_many :books, inverse_of: :author #inverse_of に続けて関連名を記述する
end

class Book < ApplicationRecord
  belongs_to :author, foreign_key: "user_id", class_name: "User", inverse_of: :books
end

これで双方向関連付けを設定することができました!

双方向関連付けを行うと、

  • 関連付けに起因するバグ
  • 余分なクエリ発行

を防ぐことにつながります。

まとめ

  • 規約から外れた関連付けの場合に双方向関連付けを行うには、inverse_of をつける

参考資料

初めての記事で至らぬところも多々あると思いますが、これからもこのブログを通して学んだことのアウトプットをしていきたいと思います!

ご拝読ありがとうございました 💪