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

时间:2012-06-13 19:15:54

标签: ruby-on-rails-3

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

  1. rails new MyProject
  2. bundle install
  3. rails generate controller Image
  4. 我添加了这一条路线:

    1. root :to => "image#process"
    2. 我已将此功能添加到ImageControllerimage_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中的新功能吗?或者可能是由R​​uby 1.9.2引起的?我想我通常使用1.8.7。

2 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:1)

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

在挑选名字时帮助我。