見出し画像

はじめてのRailsチュートリアル(4章)

学習の覚書なので、ところどころ日本語が変かもしれません。。

シングルクオートとダブルクオートの違い

スクリーンショット 2019-11-26 10.44.18

ほぼ一緒だと思いますが、上記のバックスラッシュのような特殊文字を入力する際に違いがあるのが勉強になりました👀

>> '#{foo} bar'     # シングルクォート内の文字列では式展開ができない
=> "\#{foo} bar"

他には、上記は「まぁそうだろうなぁ」という直感的でわかりやすい例でした。

演習も無事できました。

スクリーンショット 2019-11-26 10.57.24

オブジェクトとメッセージ受け渡し

驚いたのが「emptyメソッド」です。

irb(main):007:0> "".empty?
=> true

普段javascriptでは「"".length == 0」のように書いているので・・。Rubyでは柔軟にemptty判定ができるんですね!(あまりにも便利だったので、最初Railsのメソッドかと思いました・・)

それと同じく、「nilメソッド」もあるのですね。

破壊的メソッド

Rubyでは「!」をつければ破壊的に。付けなければ非破壊的な処理になるんですね〜!Javascriptだとメソッドごとに、これは破壊的です、これは非破壊的ですという感じなので、新しく感じました😮

a = [42, 8, 17]
a.sort # 非破壊的
a.sort! # 破壊的

ブロック

(1..5).each do |number|
  puts 2 * number
  puts '--'
end

下記のようなブロックの概念はわりとすんなりと理解することができました。でも・・

%w[A B C].map(&:downcase)

%w とかとかが分かりづらい!😥(:はRubyのシンボルというのはわかるので大丈夫)まだ、理解できてないです。

配列

スクリーンショット 2019-11-26 18.04.50

文字列を配列にし、シャッフルしてから文字列にしています。こういう配列操作は楽しいです😃

ハッシュ とシンボル

{ :name => "Michael Hartl" }
{ name: "Michael Hartl" }

これは同じ意味らしい。後者のほうが普段Javascriptを触っているのでわかりやすい。(:nameは単独で成立するけど、name:は成立しないのが、ううん?となった)

Rubyのクラス

Rubyではあらゆるものがオブジェクト。メソッドをまとめるクラス。実際にクラスを作って学べました🤗

スクリーンショット 2019-12-07 11.06.00

この章を読んでいて思ったのは、省略可能なものが多く、戸惑ってしまう・・。(self.reverseのselfを省略し、reverseと書いてもうまく動くなど)

ユーザークラス

このスタディからエディタで編集したファイルをrails consoleから実行します。

class User
 attr_accessor :name, :email
 # User.newを実行すると自動的に呼び出される
 def initialize(attributes = {})
   @name = attributes[:name]
   @email = attributes[:email]
 end
 def formatted_email
   "#{@name}<#{@email}>"
 end
end

rails consoleを立ち上げて...
require './example_user'(実行するファイルパス)するとrbファイルが読み込まれます。こうやるのかぁ。

ターミナルでコードを書くのは1行が限界...と思ってたので、エディタでコードを書けて嬉しかった。コード自体も解説がいらないくらいシンプルでわかりやすかったです〜

最後に

Ruby独自の書き方、クラスやオブジェクトの省略記法など、戸惑う点はありましたが、それを除けばわかりやすかったなという印象でした〜🙌


スキ頂けると嬉しいです〜