【问题标题】:The action could not be found for controller找不到控制器的操作
【发布时间】:2011-10-01 06:49:05
【问题描述】:

浏览完我的代码后,我遇到了与原始问题不同的问题,而不是编写新问题。我将把旧部分留在这个底部,并在这里发布新问题。我这样做是因为它们密切相关。

新:

我收到一条错误消息说

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

【问题讨论】:

  • 如果我的命名约定到处都是,请提前道歉。我还是新手
  • 所以这个问题是固定的,因为在一个块有一个额外的末端。任何人都知道为什么它永远不会停止 select * from results where id=1 when I say 127.0.0.1:8080/requests/1

标签: ruby-on-rails model controller routes initialization


【解决方案1】:

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

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 中定义

【讨论】:

  • 我实际上已将请求作为资源删除,因为显然这会将其开放给所有其他服务。我宁愿定义自己的路线
  • 能否请您从控制器中删除旧部分并重新发布代码?
  • 天哪........我想我会坚持使用 java 下一个项目。如果那是 { 我会抓住它的。谢谢一帮朋友。现在我只需要找出为什么请求没有与发布请求一起进入。
  • 切换到 java,因为它使用花括号。非常聪明的举动。
  • @overtone - 我对你的花括号评论笑了笑,然后注意到这就是为什么我的 face palm 也不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多