开发者

What is the proper way to phrase this statement in Ruby?

开发者 https://www.devze.com 2022-12-21 01:46 出处:网络
I\'m new at this, and I\'m having trouble finding the proper way to phrase this in Ruby. And I don\'t know if the Ruby API in SketchUp is different. But, thats what I\'m trying to use it for.

I'm new at this, and I'm having trouble finding the proper way to phrase this in Ruby. And I don't know if the Ruby API in SketchUp is different. But, thats what I'm trying to use it for.

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

This is what I'm basically trying to do:

This part of the code works as it should

def self.initialize_job_info
    return{
        'salesperson' => ''

It sets an empty form's initial value of job_info['salesperson']'s value to ' ' if no pre-existing value is found.

So, there is a value I want to place in the Hash that is being passed from $pg_settings.

The value I want is, and I hope this make sense, the value of this specific 'id'

$pg_settings['salespersons'] {//which is a list of 'salesperson'
    <salesperson> id="561" name="name" phone="phone number" defsales="on" email="email" </salesperson&g开发者_开发知识库t;

if (defsales == "on") then 'salesperson' => 'value="id"'

Does this make sense?

I'm pulling my hair out, so any help you can give on this would be great.


if those names not inside the quotes are variables that you want to get the values from it should probably be:

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

but as Geo said, more detail on the actual purpose/intent would help

BTW, that construc tis called string interpolation (http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals#Interpolation)


If you want to interpolate the strings, as in include their value in a string, then maybe this examples can help you:

a = "a string"
b = "this is"
c = "#{b} #{a}"

In the example above, c will have the value: this is a string . Also, while interpolating, valid Ruby code is accepted. So, this is ok too:

c = "#{ b.sub("this","") } #{a}"

And in this case, c will have the value is a string . So, if you need to interpolate something, first think about how you would do it using normal code, and then just add #{} around it.


I figured it out.

Here is the working code

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

Looks like I was a long way off.......lol

0

精彩评论

暂无评论...
验证码 换一张
取 消