On 7 Mai, 10:46, inriz <[email protected]> wrote:
> hello list,
>
> i've got the following code snippet in my model to generate extra
> helper functions.
>
>     def transform_to_boolean
>       Property.columns.select {|c| c.sql_type == "varchar(1)"}.each do
> |col|
>         define_method "#{col.name.to_s}".to_sym do
>           v = self.attributes[col.name.to_s]
>           v = (v ? v.upcase : "F")
>           if (v == "W" || v == "T")
>             true
>           else
>             false
>           end
>         end
>       end
>     end
>
> this functionality takes over 1,2 sec for one instance of the model.
> It has to iterate over 260 columns.
>
> Do you have an idea how to speed up this piece of functionality?
>
> best regards,
>
> matthias
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Talk" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group 
> athttp://groups.google.com/group/rubyonrails-talk?hl=en.

this is the call of evil
v = self.attributes[col.name.to_s]
i change it to
v = self.read_attribute(col.name.to_sym)

its much faster.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to