変数はメソッドの中で定義するとそのメソッド内でしか基本使えません。
これをスコープといいます
ある変数を利用できる範囲のことです。スコープの範囲外の変数を使おうとすると、エラーが起こります。
その場合どうするかというと引数を使います。
引数はメソッドの外にある変数(スコープ外の変数)をメソッドの中で使うことができます。
postに入っているハッシュのデータを配列オブジェクトの中に入れたい場合
def example
post = {}
post[:name] = "太郎"
post[:age] = "25"
post[:gender] = "男性"
posts << post
end
# 配列オブジェクト
posts = []
こちらはエラーになってしまいます。
変数postsはexampleメソッドの外にあるためです。
そこで引数を使うと
def example(a_posts)
#ハッシュオブジェクト
post = {}
post[:name] = "太郎"
post[:age] = "25"
post[:gender] = "男性"
a_posts << post
return a_posts
end
# 配列オブジェクト
posts = []
posts = example(a_posts)
これで配列オブジェクトpostsにハッシュオブジェクトpostのデータが追加されるコードが書けました。