找不到控制器的操作

ove*_*one 5 controller routes model initialization ruby-on-rails

通过我的代码,我有一个与原始问题不同的问题,而不是写一个新问题。我将把旧部分留在本文底部,并在此处发布新问题。我这样做是因为它们密切相关。

新的:

我收到一条错误消息说

Unknown action

The action 'response' could not be found for CrawlerController
Run Code Online (Sandbox Code Playgroud)

我会保持简单,但模型、控制器和路由的代码在上一个问题的下方。

一个基本的失败是响应是 CrawlerController 中的一个定义,就像 add_Request 一样。路由匹配如下:

  match  "/requests/new" => "crawler#add_Request"
  match 'requests/:id' => 'crawler#response'   
Run Code Online (Sandbox Code Playgroud)

这是根据用户请求的控制器代码:

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
Run Code Online (Sandbox Code Playgroud)

Boh*_*dan 5

请重新检查控制器的代码,因为我可以看到它

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
Run Code Online (Sandbox Code Playgroud)

所以一端缺少一个你的response动作是在里面定义的add_Request

  • 切换到 java 因为它使用花括号。很聪明的举动。 (15认同)
  • @overtone - 我对你的花括号评论笑了笑,然后注意到这就是为什么我的*面掌*不起作用。 (6认同)
  • 哦,我的天啊……我想我会坚持使用 Java 下一个项目。如果那是 { 我会抓住它。谢谢一群朋友。现在我只需要找出为什么请求没有通过发布请求进入。 (3认同)