はじめてのRailsチュートリアル(4章)
学習の覚書なので、ところどころ日本語が変かもしれません。。
シングルクオートとダブルクオートの違い
ほぼ一緒だと思いますが、上記のバックスラッシュのような特殊文字を入力する際に違いがあるのが勉強になりました👀
>> '#{foo} bar' # シングルクォート内の文字列では式展開ができない
=> "\#{foo} bar"
他には、上記は「まぁそうだろうなぁ」という直感的でわかりやすい例でした。
演習も無事できました。
オブジェクトとメッセージ受け渡し
驚いたのが「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のシンボルというのはわかるので大丈夫)まだ、理解できてないです。
配列
文字列を配列にし、シャッフルしてから文字列にしています。こういう配列操作は楽しいです😃
ハッシュ とシンボル
{ :name => "Michael Hartl" }
{ name: "Michael Hartl" }
これは同じ意味らしい。後者のほうが普段Javascriptを触っているのでわかりやすい。(:nameは単独で成立するけど、name:は成立しないのが、ううん?となった)
Rubyのクラス
Rubyではあらゆるものがオブジェクト。メソッドをまとめるクラス。実際にクラスを作って学べました🤗
この章を読んでいて思ったのは、省略可能なものが多く、戸惑ってしまう・・。(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独自の書き方、クラスやオブジェクトの省略記法など、戸惑う点はありましたが、それを除けばわかりやすかったなという印象でした〜🙌