2013-04-12 27 views
0

我正在嘗試開發一個應用程序,我只需要一個控制器,並將url中的任何內容用作該控制器的參數。在Rails應用程序中只使用一個控制器

我讀過,通常URL被解析爲GET控制器/操作,如example.com/controller/action/params,但我想使用特定的控制器和特定的操作。

有沒有什麼辦法來解析一個url爲example.com/params,總是由相同的動作和控制器處理?

+0

什麼是你在第一個地方做這個道理? – jason328

+0

根據你給出的描述,我建議使用其他框架,如Sinatra或Padrino。 – fmendez

+0

我基本上試圖模仿URL縮短或imgur中看到的功能。 – user490895

回答

0

有一對夫婦在軌道的這個例子指導routing。文件config/routes.rb是您設置從URL到控制器的映射的地方。

一個具體的例子是這樣的:

match '/:username' => 'users#show' 

不進一步匹配的任何請求都被路由到UsersControllershow方法,用在params哈希作爲傳遞的價值字符串username鍵。

+0

非常感謝。 – user490895

0

是的,有。在您的config/routes.rb文件中定義的路徑:

match "catchall/*page", :to => "catchall#respond" 

然後在你的控制器:

class CatchallController < ApplicationController 

    def respond 

    end 
end 
0

我認爲這是壞主意,但你可以做到這一點,利用渲染動作:

def index 
    if self.class.instance_methods(false).include? params[:page].to_sym 
    render action: params[:page] 
    else 
    #error_404 
    end 
end 
+0

只是在使用rails時這是個壞主意嗎?我基本上試圖模仿imgur功能,只需通過imgur.com/AbcDefg – user490895

+0

就可以檢索到圖像。現在我明白你的想法和我的回答看起來如此不協調( – user2191327

相關問題