"fish", "vegetables"] # do ... end または { ... } で囲まれたコードのかたまり(ブロック)をメソッドに渡せる categories.each do |category| puts category end categories.map { |c| c.upcase } #=> ["MEAT", "FISH", "VEGETABLES"] # for や while もあるがほとんど使わない 10.times do puts "Hello, world!" end
Class クラスのインスタンスを代入 Greeter = Class.new # class Greeter; end と同じ(クラスもオブジェクト) module Minimart # モジュールを使って定数の名前空間を分けている( Mixinについては割愛) class Greeter def say_hello "Hello, #{MASCOT_NAME}" end end end greeter = Minimart::Greeter.new # :: 演算子を使ってアクセス greeter.say_hello #=> "Hello, mini-tomart!"
?', 1.day.ago).order(:updated_at) # SELECT `users`.* FROM `users` WHERE (updated_at > '2021-08-17 10:00:00') ORDER BY `users`.`updated_at` ASC User.find_by(name: 'tomart') # SELECT `users`.* FROM `users` WHERE `users`.`name` = 'tomart' LIMIT 1
pickup_location_id という pickup_locations の外部キーを持ち # pickup_locations の主キーは id で対応するモデルは PickupLocation (規約) belongs_to :pickup_location end class PickupLocation < ActiveRecord::Base has_many :users end User PickupLocation n 1
GraphQL のリスト型と解釈される(直感的だが 不思議) field :pickup_locations, [Types::PickupLocationType], null: false end end class MinimartSchema < GraphQL::Schema # root となる Query 型に対応するクラスを指定 query Types::QueryType end GraphQL Ruby によるスキーマ定義
ID, null: false field :name, String, null: false # 自身の型に対応するアプリケーションのオブジェクトに object でアクセスできる def id object.id end # フィールド名のメソッドがない場合は object の同名メソッドを呼ぶので name は省略 end end