为什么Rails控制器操作方法需要参数

Spi*_*idy 6 ruby-on-rails-3

这是一个全新的项目.这是我运行的确切命令:

  1. rails new MyProject
  2. bundle install
  3. rails generate controller Image

我添加了这一条路线:

  1. root :to => "image#process"

我已将此功能添加到ImageController(image_controller.rb)

def process
  render :nothing => true
end
Run Code Online (Sandbox Code Playgroud)

最后我删除了默认值index.html.当我运行项目时,它有一个错误,说进程需要0参数,而不是1.所以我修改方法告诉我试图发送到进程的参数.

def process(arg)
  p arg
  render :nothing => true
end
Run Code Online (Sandbox Code Playgroud)

字符串"process"被打印到屏幕上.我以前做过几个Rails项目,从未遇到过这个.我错过了某个地方吗?这是Rails 3.0.10中的新功能吗?或者可能是由R​​uby 1.9.2引起的?我想我通常使用1.8.7.

Mau*_*res 11

您不能将操作命名为进程,这是rails控制器的内部方法,将其命名为其他内容.

还有一些其他名称不能用于控制器操作,如render,params,request.不幸的是,没有这些东西的清单.