2016-04-20 74 views
0

我有一些简单的搜索表单的麻烦。当我在形式传递页面上的信息:Rails 4:简单的搜索表单与错误的重定向

/搜索

,按提交按钮,它收集数据和搜索,但不是重新加载当前页面它传递PARAMS指数:

/权利要求?UTF8 =✓& claim_id = 49 & PHONE_NUMBER =%2B34(44)444444

但是我想在当前页面显示搜索结果(没有任何AJAX)。 如果我手动传递这些参数并更改链接,它就会工作!

/搜索?UTF8 =✓& claim_id = 49 & PHONE_NUMBER =%2B34(44)444444

routes.rb中

Rails.application.routes.draw do 
    resources :administrators 
    resources :claims 

    root :to => "sessions#landing" 

    ... 

    get 'search' => 'claims#search' 

    post 'claims/new' => 'claims#new' 
    post 'claims' => 'claims#create' 
end 

我的搜索在功能控制器:

def search 
    @claim = Claim.search(params[:claim_id], params[:phone_number]) 
    end 

如何修改我的路线来做到这一点?

回答

0

所以,这里发生了一些事情。你需要做两件事情

  1. 确保您的控制器动作可以处理多种类型的请求
  2. 请确保您有2路,1张贴(因为你没有使用AJAX)和1个用于获取

控制器动作

if request.post?o  
    @claim = Claim.search(params[:claim_id], params[:phone_number]) 
else 
    Claim.all (or whatever you want to display when the page is fresh before a search has been done) 
end 

而且你的路线有点凌乱所以让我们解决这个问题,当我们加职位。

resources :claims do 
    collection do 
    get 'search' 
    post 'search' 
    end 
end