Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Ruby表达这个语句的正确方式是什么?_Ruby_Code Formatting - Fatal编程技术网

用Ruby表达这个语句的正确方式是什么?

用Ruby表达这个语句的正确方式是什么?,ruby,code-formatting,Ruby,Code Formatting,我在这方面是新手,我很难找到合适的方式用Ruby来表达。我不知道SketchUp中的Ruby API是否不同。但是,这就是我想用它的目的 def self.initialize_job_info return{ 'salesperson' => ' = $pg_settings['salespersons'[['salesperson']['id']]] if ('on' = $pg_settings['salespersons'[['salesperson']['

我在这方面是新手,我很难找到合适的方式用Ruby来表达。我不知道SketchUp中的Ruby API是否不同。但是,这就是我想用它的目的

def self.initialize_job_info
    return{
        'salesperson' => ' = $pg_settings['salespersons'[['salesperson']['id']]] if ('on' = $pg_settings['salespersons'[['salesperson']['defsales']]])'

这就是我基本上想要做的:

代码的这一部分工作正常

def self.initialize_job_info
    return{
        'salesperson' => ''
如果找不到预先存在的值,它会将空表单的job_info['salesperson']值的初始值设置为“”

因此,我想在从$pg_设置传递的散列中放置一个值

我想要的值是,我希望这是有意义的,这个特定“id”的值

$pg_settings['salespersons'] {//which is a list of 'salesperson'
    <salesperson> id="561" name="name" phone="phone number" defsales="on" email="email" </salesperson>
$pg_设置['salersons']{//这是一个'salerson'列表
id=“561”name=“name”phone=“phone number”defsales=“on”email=“email”
如果(defsales==“on”),则“salesson”=>value=“id”'

这有意义吗


我很紧张,所以你能在这方面提供的任何帮助都会很好。

如果那些不在引号内的名称是变量,你想从中获取值,那么应该是:

'salesperson' => " = $pg_settings[#{salespersons}[[#{salesperson}][#{id}]]] if (#{on} = $pg_settings[#{salespersons}[[#{salesperson}][#{defsales}]]])"
但正如Geo所说,更多关于实际目的/意图的细节将有所帮助


顺便说一句,这种结构称为字符串插值()

如果你想插值字符串,比如在字符串中包含它们的值,那么这个例子也许可以帮助你:

a = "a string"
b = "this is"
c = "#{b} #{a}"
在上面的示例中,
c
的值为:
这是一个字符串
。此外,在插值时,接受有效的Ruby代码。因此,这也可以:

c = "#{ b.sub("this","") } #{a}"
在这种情况下,
c
将具有值
是一个字符串
。因此,如果您需要插入某些内容,请首先考虑如何使用普通代码,然后在其周围添加
{}

我找到了它

这是工作代码

def self.initialize_job_info
    return{
        'salesperson' => self.default,
    }
end

def self .default
    salespersons = $pg_settings['salespersons']
    salespersons.each do |salesperson|

    if (salesperson['defsales'] == 'on')
        return salesperson['id']
        end
    end
end

看来我已经走了很远了……哈哈,我不明白。你到底想干什么?