Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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 在rails应用程序中仅使用一个控制器_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 在rails应用程序中仅使用一个控制器

Ruby on rails 在rails应用程序中仅使用一个控制器,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在尝试开发一个只需要一个控制器的应用程序,并使用url中的任何内容作为该控制器的参数 我已经了解到,通常url解析为GET controller/action,如example.com/controller/action/params,但我希望使用特定的控制器和特定的操作 是否有任何方法可以解析一个url,例如example.com/params,它总是由同一个操作和控制器处理?是的,有。在config/routes.rb文件中定义路由: match "catchall/*page", :t

我正在尝试开发一个只需要一个控制器的应用程序,并使用url中的任何内容作为该控制器的参数

我已经了解到,通常url解析为GET controller/action,如example.com/controller/action/params,但我希望使用特定的控制器和特定的操作


是否有任何方法可以解析一个url,例如example.com/params,它总是由同一个操作和控制器处理?

是的,有。在
config/routes.rb
文件中定义路由:

match "catchall/*page", :to => "catchall#respond"
然后在控制器中:

class CatchallController < ApplicationController

  def respond

  end 
end
class CatchallController
上的Rails指南中有几个例子。文件
config/routes.rb
用于设置从URL到控制器的映射

一个具体的例子是:

match '/:username' => 'users#show'
任何不匹配的请求都将被路由到
userscoontroller
show
方法,在
params
散列中传递的字符串作为
username
键的值。

我认为这是个坏主意,但您可以使用“渲染动作”来执行此操作:

def索引
如果self.class.instance_方法(false).include?参数[:第页].至\u sym
呈现操作:参数[:页]
其他的
#错误404
结束
结束

首先,您这样做的理由是什么?根据您给出的描述,我建议使用其他框架,如Sinatra或Padrino。我实际上是在尝试模仿url缩写器或imgur中的功能。仅在使用rails时,这是个坏主意吗?我基本上是在模仿imgur的功能,通过imgur.com/AbcDefgNow可以简单地检索图像。我理解你的想法,我的答案看起来很不一致(