Ruby 如何重用选项哈希

Ruby 如何重用选项哈希,ruby,twilio,Ruby,Twilio,我正在反复使用Twilio Say动词,并希望重构我的代码。现在看起来有点像这样 def sample render text: (Twilio::TwiML::Response.new do |r| r.Say 'Welcome to ABC Residence', voice: 'alice', language: 'en-GB' r.Say 'Thank you for visiting ABC Residence.', voice:'alice',

我正在反复使用Twilio Say动词,并希望重构我的代码。现在看起来有点像这样

def sample
    render text: (Twilio::TwiML::Response.new do |r|
        r.Say 'Welcome to ABC Residence', voice: 'alice', language: 'en-GB'
        r.Say 'Thank you for visiting ABC Residence.', voice:'alice', language: 'en-GB'
        r.Hangup
    end).text
end

请注意,我使用了两次
语音:“alice”和
语言:“en-GB”
。如何将它们放入一个变量中,以便反复使用?

将它们放入散列并使用它:

def sample
    props = {voice: 'alice', language: 'en-GB'}

    render text: (Twilio::TwiML::Response.new do |r|
        r.Say 'Welcome to ABC Residence', props
        r.Say 'Thank you for visiting ABC Residence.', props
        r.Hangup
    end).text
end

将它们放入散列中并使用它:

def sample
    props = {voice: 'alice', language: 'en-GB'}

    render text: (Twilio::TwiML::Response.new do |r|
        r.Say 'Welcome to ABC Residence', props
        r.Say 'Thank you for visiting ABC Residence.', props
        r.Hangup
    end).text
end

我认为你的道具散列不可用,因为它不在示例方法中。要么把它移到里面,要么把它转换成一个返回散列的方法。哦,我的错。现在已修复。我认为您的道具哈希将不可用,因为它不在示例方法中。要么把它移到里面,要么把它转换成一个返回散列的方法。哦,我的错。现在修好了。