2010-02-25 67 views
0

我是這方面的新手,我無法找到正確的方式在Ruby中對此進行描述。而且我不知道SketchUp中的Ruby API是否不同。但是,這就是我正在嘗試使用它。在Ruby中使用這個語句的正確方法是什麼?

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的空白表單的初始值如果沒有找到預先存在的值,''銷售人員''的值爲''。

因此,我希望在從$ pg_settings傳遞的哈希中放置一個值。

我想要的值,我希望這是有意義的,這個特定的「身份證」

$pg_settings['salespersons'] {//which is a list of 'salesperson' 
    <salesperson> id="561" name="name" phone="phone number" defsales="on" email="email" </salesperson> 

如果值(defsales ==「上」),那麼「推銷員」 =>「值= 「id」'

這是否有意義?

我正在拉我的頭髮,所以任何幫助你可以給這個會很好。

+0

我不明白。你真的想做什麼? – Geo 2010-02-25 16:31:52

回答

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 

貌似我是很長的路要走.......哈哈

0

如果這些名字不在引號裏是你想從它的值應該可能是變量:

'salesperson' => " = $pg_settings[#{salespersons}[[#{salesperson}][#{id}]]] if (#{on} = $pg_settings[#{salespersons}[[#{salesperson}][#{defsales}]]])" 

但地緣說,實際的目的/意圖更詳細,將有助於

BTW,這construc那朵叫串插(http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals#Interpolation

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。因此,如果您需要插入某些內容,請首先考慮如何使用普通代碼執行此操作,然後在其周圍添加#{}

相關問題