Ruby 1.9.2中"|| ="做了什么?

ahm*_*met 0 ruby variable-assignment

params[:user][:role_ids] ||= []
Run Code Online (Sandbox Code Playgroud)

它有什么作用?

ruby -v = 1.9.2p290

jon*_*ohn 5

其分配[]params["user][:role_ids]如果params["user][:role_ids]nil 或其他falsy值...

否则,它保留原始值 params["user][:role_ids]

variable = nil

variable ||= "string"

puts variable # "string"

variable2 = "value"

variable2 ||= "string"

puts variable2 # "value"
Run Code Online (Sandbox Code Playgroud)