【问题标题】:Rails 4: Simple search form with wrong redirectRails 4:带有错误重定向的简单搜索表单
【发布时间】:2016-04-20 22:30:21
【问题描述】:

我在使用简单的搜索表单时遇到了一些问题。当我在页面上的表单中传递信息时:

/搜索

然后按下提交按钮,它会收集数据和搜索,但不是重新加载当前页面,而是将参数传递给索引:

/声明?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

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

【问题讨论】:

    标签: ruby-on-rails search


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2015-07-16
      • 1970-01-01
      • 2015-06-15
      • 2013-07-22
      • 2011-12-30
      • 1970-01-01
      • 2012-05-01
      • 2016-11-11
      • 1970-01-01
      相关资源
      最近更新 更多