On Sep 6, 2:26 am, Glen <[email protected]> wrote:
> I'm having trouble passing context data with a request.  Rails keeps
> complaining that it can't convert string to integer which is
> questionable in and of it's self.  

The error you're getting means "I'm an array and you trying to access
a string index". You get the same error if you do [1,2,3]['foo'] in
the console
I'd check that the parameters you receive are what you expected (did
you really mean to use [] in your link_to call ?)

Fred
>Origionally the data was being
> added to the query string as a string so I thought it might be an
> encapsulation issue and sent them as actual integers but it seems to
> make no difference.  Here is the code:
>
> This is the action in the first controller:
>
>         def show
>                 @jobs = Job.all(:conditions => ["city_id = ? AND region_id = 
> ? AND
> country_id = ?", params[:city], params[:region], params[:country]])
>                 @city = City.find(params["city"])
>                 @region = Region.find(params["region"])
>                 @country = Country.find(params["country"])
>                 @companies = []
>                 @titles = []
>
>                 @jobs.each do |job|
>                         @companies << job.company
>                 end
>
>                 @companies.uniq!
>
>                 @jobs.each do |job|
>                         @titles << job.title
>                 end
>
>                 @titles.uniq!
>         end
>
> This is the link that is causing the problem (it is in the show view
> for the action above):
>
> <%= link_to title, by_title_jobs_url(:title => title, :location =>
> [:city => @city.id, :region => @region.id, :country => @country.id])
> %>
>
> And here is the action being called by the link:
>
>         def by_title
>                 if params[:location]
>                         @jobs = Job.find(:all, :conditions => ["title = ? AND 
> city_id = ?
> AND region_id = ? AND country_id = ?", params["title"], params
> ["location"]["city"], params["location"]["region"], params["location"]
> ["country"]])
>                 elsif params[:company]
>                         @jobs = Job.find(:all, :conditions => ["title = ? AND 
> company_id
> = ?", params["title"], params["company"]])
>                 else
>                         @jobs = Job.find(:all, :conditions => ["title = ?", 
> params
> ["title"]])
>                 end
>         end
>
> I repeatedly get the following error message:
>
>  TypeError in JobsController#by_title
>
> can't convert String into Integer
>
> RAILS_ROOT: /Users/fenris/Projects/Rails/jobsnob
> Application Trace | Framework Trace | Full Trace
>
> /Users/fenris/Projects/Rails/jobsnob/app/controllers/
> jobs_controller.rb:46:in `[]'
--~--~---------~--~----~------------~-------~--~----~
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