-1

ありがとうページを作成しようとしています。URLをテストして正常に機能するため、このルートは正常に機能しますが、作成アクションでリダイレクトしようとすると、次のようになります。

Routing Error

No route matches {:action=>"thank_you", :locale=>:en, :controller=>"appointments"}

コントローラ

  def create
    @appointment = Appointment.new(params[:appointment])

      if @appointment.save
        #send email
        AppointmentMailer.appointment_confirmation(@appointment).deliver
        AppointmentMailer.new_appointment(@appointment).deliver
        redirect_to :action => "thank_you"
      else
        render :action => 'new', :alert => @appointment.errors.full_messages.split(', ')
      end
  end


  def thank_you
      @appointment = Appointment.find(params[:id])
  end

ルート

resources :appointments, :except => :new do
      member do
        get :thank_you
      end
    end
4

2 に答える 2

1

これをRESTfulアクションとして追加する必要があります(またはデフォルトの一致ルートを想定します)。

一言で言えば:

resources :appointments do
  member do
    get 'thank_you'
  end
end

または:

resources :appointments do
  get 'thank_you', :on => :member
end
于 2013-01-24T20:39:23.580 に答える
0

新しいページを取得するには、コントローラーを編集するだけでは不十分です。

  1. config / routers.rbを編集し、インクルードします

    match "/appointments/thank_you" => "appointments#thank_you"
    
  2. コントローラーにコマンドを挿入するrenderと、作成する必要のあるサンキュービューが表示されます...

于 2013-01-24T20:40:40.567 に答える