- 一般 Hash 情況是這樣:
hash = {}
hash[:foo][:bar] = :hello
=> NoMethodError: undefined method `[]=' for nil:NilClass
請建立一個 Hash 可以不管 key 值是否存在都可以自動設定 key 及 value
例如說以上的例子就會是
hash = Hash.new(//實作)
hash[:foo][:bar] = :hello
hash
=> { :foo => { :bar => :hello } }
- 想像一個 controller, 依照使用者的 role 來判斷來 redirect 到不同的路徑:
if user_signed_in?
if current_user.role == "admin"
redirect_to admin_path
elsif current_user.role == "reviewer"
redirect_to reviewer_path
elsif current_user.role == "collaborator"
redirect_to collaborator
else
redirect_to user_path
end
else
render :new
end
有什麼更漂亮的做法來避免如此的巢狀 if else