I want a form on my home page to be handled by a different controller
(buy_controller) but I'm having issues.  The code works fine when I
have the form under the "buy" views

I'm pretty new to Rails.  I've tried different ways of doing this but
I can't seem to figure it out.  The latest error is doesn't let me
load the home page.

Error
*************************************
ActionController::RoutingError in Home#index

Showing home/index.rhtml where line #42 raised:

buy_url failed to generate from
{:controller=>"buy", :action=>"search_for_product"}, expected:
{:controller=>"buy", :action=>"show"}, diff: {:action=>"show"}

Extracted source (around line #42):

39:                                                     <div id="search">
40:                                                       <h1 class="mh"><%= 
"Product Search".t %></h1>
41:                                                       <div 
id="search_field">
42:                                                         <% form_for :buy, 
:url => buy_path(:action =>
'search_for_product'), :html => { :id => 'search_form' } do |form| %>
43:                                       <%= form.text_field :query, :size => 
70 -%>
44:                                       <%= submit_tag "Search".t %>
45:                                       <img id='query_indicator' 
src='/images/
live_tree_loading_spinner.gif' style='display:none;' alt="loading" />


Here is my code:

routes.rb
*************************************
map.resources :buy


/home/index.rhtml
*************************************
<% form_for :buy, :url => buy_path(:action =>
'search_for_product'), :html => { :id => 'search_form' } do |form| %>
  <%= form.text_field :query, :size => 70 -%>
  <%= submit_tag "Search" %>
<% end %>

buy_controller
*************************************
def search_for_product
  if params[:buy][:query].blank?
    ...
  end
  if @fail
    flash[:error] = @err_msg
    redirect_to :back
  else
    respond_to do |format|
      format.html { render :template => 'buy/search',
                          :layout => 'buy' } # search.rhtm
    end
  end
end

--~--~---------~--~----~------------~-------~--~----~
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