Rails搜索数据库并渲染与结果匹配的显示页面

时间:2018-10-04 15:17:24

标签: ruby-on-rails

因此,我所在的位置具有与之关联的多个邮政编码。例如,西雅图-10001、10002、10003、10004;底特律-30001、30002、30003、30004等

我要做的是在主页上放置一个搜索字段,以按邮政编码搜索。用户输入邮政编码,然后单击提交。然后的目标是将页面重定向到与输入匹配的任何内容。因此输入了30002,它将用户发送到底特律。

我的想法是在模型上进行搜索,并将索引用于控制器。

class ZipcodesController < ApplicationController
  respond_to :html, :json

  def index
    @zipcodes = Zipcode.search(params[:search])
  end

  private

  def zipcode_params
    params.require(:zipcode).permit(:search)
  end
end

在模型中,我有:

class Zipcode < ApplicationRecord
  scope :ordered, -> { order(zipcode: :desc) }
  belongs_to :location
  validates :zipcode, presence: true

  def self.search(search)
    if search
      zipcode = Zipcode.find_by(zipcode: search)
      if zipcode
        self.where(zipcode_id: zipcode)
      else
        Zipcode.all
      end
    else
      Zipcode.all
  end
end

所以我的问题是如何从搜索重定向到结果页面?我应该将其放在搜索方法中吗?

0 个答案:

没有答案