我正在嘗試開發一個應用程序,我只需要一個控制器,並將url中的任何內容用作該控制器的參數。在Rails應用程序中只使用一個控制器
我讀過,通常URL被解析爲GET控制器/操作,如example.com/controller/action/params,但我想使用特定的控制器和特定的操作。
有沒有什麼辦法來解析一個url爲example.com/params,總是由相同的動作和控制器處理?
我正在嘗試開發一個應用程序,我只需要一個控制器,並將url中的任何內容用作該控制器的參數。在Rails應用程序中只使用一個控制器
我讀過,通常URL被解析爲GET控制器/操作,如example.com/controller/action/params,但我想使用特定的控制器和特定的操作。
有沒有什麼辦法來解析一個url爲example.com/params,總是由相同的動作和控制器處理?
有一對夫婦在軌道的這個例子指導routing。文件config/routes.rb
是您設置從URL到控制器的映射的地方。
一個具體的例子是這樣的:
match '/:username' => 'users#show'
不進一步匹配的任何請求都被路由到UsersController
的show
方法,用在params
哈希作爲傳遞的價值字符串username
鍵。
非常感謝。 – user490895
是的,有。在您的config/routes.rb
文件中定義的路徑:
match "catchall/*page", :to => "catchall#respond"
然後在你的控制器:
class CatchallController < ApplicationController
def respond
end
end
我認爲這是壞主意,但你可以做到這一點,利用渲染動作:
def index
if self.class.instance_methods(false).include? params[:page].to_sym
render action: params[:page]
else
#error_404
end
end
只是在使用rails時這是個壞主意嗎?我基本上試圖模仿imgur功能,只需通過imgur.com/AbcDefg – user490895
就可以檢索到圖像。現在我明白你的想法和我的回答看起來如此不協調( – user2191327
什麼是你在第一個地方做這個道理? – jason328
根據你給出的描述,我建議使用其他框架,如Sinatra或Padrino。 – fmendez
我基本上試圖模仿URL縮短或imgur中看到的功能。 – user490895