3

Volunteers という名前のリソースがあります。

class VolunteersController < ApplicationController

  before_filter :authenticate_user!

  def index
    #@volunteers = Volunteer.all()
    @volunteers = Volunteer.paginate(:page => params[:page])
  end

  def show
    @volunteer = Volunteer.find(params[:id])
  end

  def new
    @volunteer = Volunteer.new
  end

  def create
    @post = Volunteer.new(volunteer_params)

    @post.save
    redirect_to @post
  end

  def destroy
    @volunteer = Volunteer.find(params[:id])
    @volunteer.destroy
    redirect_to :action => 'index'
  end

  def search
    @volunteers = Volunteer.search params[:search]
  end

private

  def volunteer_params
    params.require(:volunteer).permit(:forename, :surname)
  end

end

検索という追加のアクションを追加しましたが、ルート ファイルでのマッピングに問題があります。

root 'home#index'
resources :volunteers

検索アクション (パラメーターを含む) にマップするにはどうすればよいですか?

4

1 に答える 1

12

ルート ファイル自体に例があります。

  # Example resource route with options:
  #   resources :products do
  #     member do
  #       get 'short'
  #       post 'toggle'
  #     end
  #
  #     collection do
  #       get 'sold'
  #     end
  #   end

リソースの投稿 (または適切なもの) オプションとしてメソッドを追加する必要がありsearchます。コレクションまたはメンバーに追加できます。コレクション メソッドは URL で特定のアイテム ID を検索しません。検索方法。

resources :volunteers do 
  collection do
    post :search
  end
end
于 2013-10-17T11:49:34.333 に答える