Rubyで出力引数を持つメソッドを作ろうとしています。
ルビーがその引数を値渡しにするか参照渡しにするかについての議論について、こことここでさまざまな投稿を読みました。
厳密に言えば、Ruby は常に値渡しですが、渡される値は実際には参照です。これについて多くの議論がある理由。
参照された変数の値を変更するには、いくつかの方法があることがわかりました。たとえば、配列、ハッシュ、文字列、またはマージの場合は、 replaceメソッドを使用します。ハッシュの場合。
integerを使用すると、特別なメソッドを使用しなくても、メソッドの外部で値を変更して渡すことができることがわかりました。
私の質問は他のオブジェクトについてです。たとえば、オブジェクトの「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 は nil のままです)