6

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

  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

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

def process(arg)
  p arg
  render :nothing => true
end

字符串“process”被打印到屏幕上。我之前做过几个 Rails 项目,但从未遇到过这种情况。我在某个地方错过了一步吗?这是 Rails 3.0.10 中的新功能吗?或者可能是由 Ruby 1.9.2 引起的?我想我通常使用 1.8.7。

4

2 回答 2

11

您不能将动作命名为process,这是 rails 控制器的内部方法,请命名为其他名称。

还有许多其他名称不能用于控制器操作,例如渲染、参数、请求。不幸的是,没有这些东西的清单。

于 2012-06-13T19:33:21.317 回答
1

为了将来参考,如果你不使用它,你可以在这里查看所有内部方法和类:ruby doc with nav on top right

在选择名称时帮助我。

于 2012-06-13T19:53:20.667 回答