我是新手,我很难找到在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_settings传递的Hash中放置一个值。
我想要的价值是,我希望这是有意义的,这个特定'id'的价值
$pg_settings['salespersons'] {//which is a list of 'salesperson'
<salesperson> id="561" name="name" phone="phone number" defsales="on" email="email" </salesperson>
if(defsales ==“on”)然后'salesperson'=&gt; '值= “ID”'
这有意义吗?
我把头发拉了出来,所以你能给予的任何帮助都会很棒。
答案 0 :(得分:0)
如果那些不在引号内的名称是你想从中获取值的变量应该是:
'salesperson' => " = $pg_settings[#{salespersons}[[#{salesperson}][#{id}]]] if (#{on} = $pg_settings[#{salespersons}[[#{salesperson}][#{defsales}]]])"
但正如Geo所说,关于实际目的/意图的更多细节将有所帮助
顺便说一下,这种结构被称为字符串插值(http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals#Interpolation)
答案 1 :(得分:0)
如果你想插入字符串,就像在字符串中包含它们的值一样,那么这些例子可以帮助你:
a = "a string"
b = "this is"
c = "#{b} #{a}"
在上面的示例中,c
的值为this is a string
。此外,在插值时,接受有效的Ruby代码。所以,这也没关系:
c = "#{ b.sub("this","") } #{a}"
在这种情况下,c
的值为is a string
。因此,如果您需要插入某些内容,请首先考虑如何使用普通代码执行此操作,然后在其周围添加#{}
。
答案 2 :(得分:0)
我明白了。
这是工作代码
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
看起来我还有很长的路要走....... lol