Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 路由/未知操作_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 路由/未知操作

Ruby on rails 路由/未知操作,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我在控制器中有一个指向方法的路由,如: match foo/bar => bar#qux 当我有一个名为qux的实例方法时,它似乎可以找到控制器,因为它(我认为是正确的)抱怨没有这样的方法(因为它应该是静态的) 然而,当我在bar中有一个静态方法self.qux时,它告诉我: Unknown action The action 'qux' could not be found for Bar 控制器的操作必须是实例方法。Rails将生成控制器的实例,并尝试在其上调用给定的方法 def

我在控制器中有一个指向方法的路由,如:

match foo/bar => bar#qux
当我有一个名为
qux
的实例方法时,它似乎可以找到控制器,因为它(我认为是正确的)抱怨没有这样的方法(因为它应该是静态的)

然而,当我在bar中有一个静态方法
self.qux
时,它告诉我:

Unknown action

The action 'qux' could not be found for Bar

控制器的操作必须是实例方法。Rails将生成控制器的实例,并尝试在其上调用给定的方法

def self.qux
应该只是
def qux

控制器操作不应该是类方法;这将使整个“暴露动作实例变量”变得支离破碎。