Не удалось найти действие для контроллера - PullRequest
4 голосов
/ 08 июля 2011

Изучив мой код, у меня возникла отдельная проблема с моим первоначальным вопросом, а не с написанием нового вопроса.Я оставлю старую часть внизу этого и опубликую новую проблему здесь.Я делаю это, потому что они тесно связаны.

Новое:

Я получаю сообщение об ошибке, говорящее

Unknown action

The action 'response' could not be found for CrawlerController

Я буду упрощать, но код для моделиКонтроллер и маршруты ниже в предыдущем вопросе.

Основной недостаток - ответ - это определение в CrawlerController, как и add_Request.Маршруты совпадают так:

  match  "/requests/new" => "crawler#add_Request"
  match 'requests/:id' => 'crawler#response'   

Вот код контроллера в соответствии с запросом пользователя:

class CrawlerController < ApplicationController
def add_Request
@request = Request.new(params[:request])

respond_to do |format|
  if @request.save
    format.html { redirect_to(@request, :notice => 'Request was successfully created.') }
    format.xml  { render :xml => @request, :status => :created, :location => @request }

  else
    format.html { render :action => "new" }
    format.xml  { render :xml => @request.errors, :status => :unprocessable_entity }
  end
end
end

def response
  @request = Request.find(params[:id])
 respond_to do |format|
   format.html
   format.js { render :json => @request }
  end
end

def show
  @request = Request.find(params[:id])

  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @request }
    format.json{
      render :json => @request.to_json
    }
  end
end
 end

1 Ответ

4 голосов
/ 08 июля 2011

пожалуйста, перепроверьте код контроллера, как я его вижу

class CrawlerController < ApplicationController
  def add_Request
    @request = Request.new(params[:request])

    respond_to do |format|
      if @request.save
        format.html { redirect_to(@request, :notice => 'Request was successfully created.') }
        format.xml  { render :xml => @request, :status => :created, :location => @request }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @request.errors, :status => :unprocessable_entity }
      end
    end

    def response
      @request = Request.find(params[:id])
      respond_to do |format|
        format.json {render :@request.to_json}
    end
  end

, поэтому на одном конце отсутствует, ваше действие response определено внутри add_Request

...