2011-08-23 59 views
0

我试图创建一个表单提交给当前控制器(results_controller)内的某个动作。表单提交Unkown Action?

我的表单代码:

<%= form_tag(:controller => "results", :action => "filter", :id => "filter") do %> 

而在results_controlle.rb我有:

def filter 
     #setting dispatches 
     @dispatches = Dispatch.find_by_message_ids(params[:message_ids]) unless params[:message_ids].blank? 

     unless @dispatches.blank? || @input_messages.blank? 
     @output_messages = OutputMessage.find_by_dispatch_ids(
              @dispatches.collect{|d| d.id }.uniq 
             ) 
     end 
     respond_to do |format| 
     format.html #default rendering 
     end 
    end 

但我得到的错误:

Unknown action 

The action 'filter' could not be found for ResultsController 

有什么建议?

UPDATE 在同一页上,我有做工作的一种形式:

<%= form_tag(:controller => "results", :action => "show", :id => "show") do %> 
+0

请发布你的config/routes.rb文件。 – Gazler

+0

@Gazler当我运行'耙路线'我得到︰'/results/show(.:format){:controller =>“results”,:action =>“show”}'和 'results_filter/results/filter (。:format){:controller =>“results”,:action =>“filter”}' –

回答

0

尝试,而不是

<% form_tag(filter_result_path(), :method => :get) do %> 

,并添加到您的路由表

resources :results do 
    member do 
    get 'filter' 
end 
end