Step by Step Ruby on Rails

Ruby on Railsで実際にWebサイトを構築する手順をまとめています。

Rubyでハッシュの操作

Rubyでハッシュの操作を行う方法をinteractive Ruby (irb)を使って確認しました。

●interactive Ruby (irb)の起動方法

$ rails console


1)ハッシュ

・中かっこ"{}"の中でキーと値を指定してハッシュを定義。
・値は、ハッシュ名[キー]でアクセス。


irb(main):001:0> user = {}
irb(main):002:0> user["first_name"] = "Michael"
irb(main):003:0> user["last_name"] = "Hartl"
irb(main):004:0> user["first_name"]
=> "Michael"
irb(main):005:0> user
=> {"first_name"=>"Michael", "last_name"=>"Hartl"}

irb(main):006:0> user = { "first_name" => "Michael", "last_name" => "Hartl" }
=> {"first_name"=>"Michael", "last_name"=>"Hartl"


2)シンボルと文字列

・文字列は二重引用符で囲んでいたが、シンボルは、頭にコロン:を置く。

・キー値などでシンボルを文字列の代わりに使用できるが、すべて文字列と同じように使用できるわけではない。splitやreverseメソッドは使用できない。

irb(main):007:0> "name".split('')
=> ["n", "a", "m", "e"]

irb(main):008:0> :name.split('')
NoMethodError: private method `split' called for :name:Symbol   from (irb):8

irb(main):009:0> "foobar".reverse
=> "raboof"

irb(main):010:0> :foobar.reverse
NoMethodError: undefined method `reverse' for :foobar:Symbol
        from (irb):10

3)ハッシュのキーにシンボルを使用

irb(main):011:0> user = { :name => "Michael Hartl", :email => "michael@example.com" }

irb(main):012:0> user[:name]
=> "Michael Hartl"

4)ネストしたハッシュ

irb(main):027:0> params = {}
irb(main):029:0> params[:user] = { :name => "Michael Hartl", :email => "michael@example.com" }
irb(main):030:0> params
=> {:user=>{:name=>"Michael Hartl", :email=>"michael@example.com"}}
irb(main):031:0> params[:user][:email]
=> "michael@example.com"

5)ハッシュに対してeachメソッドを使用

irb(main):032:0> flash = { :success => "It worked!", :error => "It failed." }

irb(main):033:0> flash.each do |key, value|
irb(main):034:1*   puts "Key #{key.inspect} has value #{value.inspect}"
irb(main):035:1> end

Key :success has value "It worked!"
Key :error has value "It failed."
=> {:success=>"It worked!", :error=>"It failed."}