[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ruby Hash wierdness

Kev Jackson

12/15/2005 10:13:00 AM

Hi

I'm having problems with using a hash. I put in a class and when I
retrieve it, it's automagically become a string

ie

<%= button_link _("Export CSV"),
SearchParams.get_url_hash({ :action => :export_csv, :klass =>
Customer }, params, @search_fields) %>

Customer is a class that is available to my view


def export_csv
klass = params[:klass]
cond = SearchParams.get_search_conditions(klass, params, @search_fields)
set_csv_headers(klass)
csv_export(klass, cond)
end

but here klass (and params[:klass]) is a string? What I really want to
do is

<%= button_link _("Export CSV"),
SearchParams.get_url_hash({ :action => :export_csv(Customer) },
params, @search_fields) %>

Any ideas why my lovely Customer class is being butchered into a string :(

Kev


3 Answers

Robert Klemme

12/15/2005 10:38:00 AM

0

Kev Jackson wrote:
> Hi
>
> I'm having problems with using a hash. I put in a class and when I
> retrieve it, it's automagically become a string
>
> ie
>
> <%= button_link _("Export CSV"),
> SearchParams.get_url_hash({ :action => :export_csv, :klass =>
> Customer }, params, @search_fields) %>
>
> Customer is a class that is available to my view
>
>
> def export_csv
> klass = params[:klass]

Try

klass = Object.const_get(params[:klass])

> cond = SearchParams.get_search_conditions(klass, params,
> @search_fields) set_csv_headers(klass)
> csv_export(klass, cond)
> end
>
> but here klass (and params[:klass]) is a string? What I really want
> to
> do is
>
> <%= button_link _("Export CSV"),
> SearchParams.get_url_hash({ :action => :export_csv(Customer)
> }, params, @search_fields) %>
>
> Any ideas why my lovely Customer class is being butchered into a
> string :(

Probably because there is an HTTP request in between?

robert

Kev Jackson

12/15/2005 10:46:00 AM

0


>>def export_csv
>> klass = params[:klass]
>>
>>
>
>Try
>
>klass = Object.const_get(params[:klass])
>
>
beautiful, thank you so much

Kev


Dr Nic

12/15/2005 11:34:00 AM

0

Yep, urls only contains strings. Often horribly ugly ones with %20 etc
all through it, but they are strings.

I like the Object.const_get method - cleaner and more specific than an
eval etc.

Nic