Keith Lancaster
2006-Aug-01 17:54 UTC
[Rails] Getting nil when you want "" (a blank string)
This has got to be something obvious that I am missing...
I have a remote form that has one value that is passed back to the
server from a text field. The form has a set of parameters passed to the
:url key called search_params. When the field is empty and the form is
submitted, I get
:my_val => ""
as expected when I examine the log. All is well with the world.
I need call that same action from a link_to_remote, in this case forcing
my_val to be empty (""). To do this, I do
search_params.merge(:my_val => "")
Examining the search_params hash after the merge, I see that my_val is
"" (not nil). When the params arrive at the server, the log shows
:my_val => nil. Due to some other code downstream, nil causes operations
to fail (it really needs to be "", not nil).
What am I missing here?
TIA,
Keith
--
Posted via http://www.ruby-forum.com/.
gustav Paul
2006-Aug-01 19:11 UTC
[Rails] Re: Getting nil when you want "" (a blank string)
Hi! Rails needs to encode params into urls... I''ve done some work with the Net::HTTP library, where i needed to encode params into an url. I used CGI.escape(my_params_string) to encode it properly... I guess encoding an empty string into a url is a mission... To hack it in the meantime, use: params[:my_val].to_s nil.to_s RUBY-DOC QUOTE: Always returns the empty string. nil.to_s #=> "" Hope this helps in the meantime... Ciao! Gustav Paul gustav@rails.co.za itsdEx.com -- Posted via http://www.ruby-forum.com/.