不知道如何在rails 3中创建搜索表单

时间:2012-05-08 08:13:50

标签: ruby-on-rails-3 forms search ruby-1.9

我需要在我的rails 3.2.3应用程序中使用搜索表单,但我不知道如何做到这一点,昨天我修复了它但后来我将其删除了:(。

以下是我的控制器和型号:

控制器

class BedrijfsgegevensController < ApplicationController   
  def index
    @bedrijfsgegevens = Bedrijfsgegeven.all
    @bedrijfsgegevens = Bedrijfsgegeven.search(params[:search])
    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @bedrijfsgegevens }
    end
  end

  # GET /bedrijfsgegevens/1
  # GET /bedrijfsgegevens/1.json
  def show
    @bedrijfsgegeven = Bedrijfsgegeven.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @bedrijfsgegeven }
    end
  end

  # GET /bedrijfsgegevens/new
  # GET /bedrijfsgegevens/new.json
  def new
    @bedrijfsgegeven = Bedrijfsgegeven.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @bedrijfsgegeven }
    end
  end

  # GET /bedrijfsgegevens/1/edit
  def edit
    @bedrijfsgegeven = Bedrijfsgegeven.find(params[:id])
  end

  # POST /bedrijfsgegevens
  # POST /bedrijfsgegevens.json
  def create
    @bedrijfsgegeven = Bedrijfsgegeven.new(params[:bedrijfsgegeven])

    respond_to do |format|
      if @bedrijfsgegeven.save
        format.html { redirect_to @bedrijfsgegeven, notice: 'Bedrijfsgegeven was successfully created.' }
        format.json { render json: @bedrijfsgegeven, status: :created, location: @bedrijfsgegeven }
      else
        format.html { render action: "new" }
        format.json { render json: @bedrijfsgegeven.errors, status: :unprocessable_entity }
      end
    end
  end

  # PUT /bedrijfsgegevens/1
  # PUT /bedrijfsgegevens/1.json
  def update
    @bedrijfsgegeven = Bedrijfsgegeven.find(params[:id])

    respond_to do |format|
      if @bedrijfsgegeven.update_attributes(params[:bedrijfsgegeven])
        format.html { redirect_to @bedrijfsgegeven, notice: 'Bedrijfsgegeven was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @bedrijfsgegeven.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /bedrijfsgegevens/1
  # DELETE /bedrijfsgegevens/1.json
  def destroy
    @bedrijfsgegeven = Bedrijfsgegeven.find(params[:id])
    @bedrijfsgegeven.destroy

    respond_to do |format|
      format.html { redirect_to bedrijfsgegevens_url }
      format.json { head :no_content }
            end
        end
    end

模型

class Bedrijfsgegeven < ActiveRecord::Base

    def search
    @search = Bedrijfsgegeven.search() do
    keywords(params[:search])
    end
    end

    def self.search(search)
        if search
        find(:all, :conditions => ['Voornaam LIKE ?', "%#{search}%"])
    else
        find(:all)
    end
  end

    validates :voornaam, 
              :achternaam, 
              :woonplaats, 
              :telefoon, 
              :website, 
              :email, 
              :presence => true

  attr_accessible :achternaam, :email, :telefoon, :voornaam, :website, :woonplaats
end

我希望有人可以帮我解决这个问题。

Grtz Kees

2 个答案:

答案 0 :(得分:1)

您是否阅读/观看了以下railscast:

http://asciicasts.com/episodes/240-search-sort-paginate-with-ajax

每次我需要基本搜索时都会帮助我

答案 1 :(得分:1)

我建议您开始使用存储库,这样可以避免这些意外删除。您可以在bitbucket.org获得5个免费的存储库。 git和mercurial都很棒。