我想在ruby中輸出參數。如何使Ruby方法傳遞輸出參數(更改引用參數的值)?
我看了型動物的帖子here和here約羯羊紅寶石的討論,通過它的參數的值或引用和
我undersand上嚴格的桑斯,紅寶石總是傳遞按值,但傳遞的價值實際上是一種參考。爲什麼有這麼多的辯論的原因。
我發現有幾種方法可以改變被引用變量的值。 例如用替換的方法,當它的一個Array,一個Hash或一個String或合併時!當它是一個散列。
我發現與整數,我可以改變和傳遞值以外的方法沒有任何特殊的方法使用。
我的問題是關於其他物體。 比如我要檢索對象的「id」屬性,和對象引用本身:
class RestaurantController < ApplicationController
def pizza_to_deliver(pizza_name, id_of_the_order, pizza)
# pizza to eat
pizza = Pizza.where(:name => pizza_name).first
# unknown pizza
return false if pizza.nil?
# first customer order about this pizza
id_of_the_order = Orders.where(:pizza_id => pizza.id).first
true
end
end
my_pizza_name = 'margerita'
My_order_id = nil
my_pizza = nil
my_restaurant = RestaurantController.new
if my_restauant.pizza_to_deliver(my_pizza_name, My_order_id, my_pizza) then
puts "Pizza to deliver : #{my_order_id}"
rex_dog.eat(my_pizza)
end
如何使這個工作? (order_id和my_pizza仍然爲零)