2013-01-18 19 views
0

我正在用Ruby on Rails構建一個Web應用程序,並且我希望路線是用戶可編輯的。所以我雖然增加了一個簡單的初始化工具來添加用戶指定的路由,但我真的不知道該怎麼做。有沒有一些簡單的方法來做到這一點?我試過這個application.rb在初始化程序中設置Rails路線

config.after_initialize do 
    Rails.application.reload_routes! 
    Rails.logger.info "#{Rails.application.routes.routes.map(&:path)}" 
    MyApp::Application.routes.draw do 
     get '/droplet' => 'admin#index' 
    end 
end 

但這似乎並不奏效。這是我在我的routes.rb

MyApp::Application.routes.draw do 
    devise_for :users 

    root :to => 'target_finder#show_page' 
    match '*path' => 'target_finder#show_page' 

end 

在此先感謝!

+0

請給我們一萬美元的觀點,您要在這裏做什麼,因爲它表明我們只能猜測背後真正的問題是什麼。 – Hugo

回答

0

如何使一個控制器操作接受參數,測試以查看它們是否與配置的路線匹配,並從那裏採取行動。

MyApp::Application.routes.draw do 
    devise_for :users 

    root :to => 'target_finder#show_page' 
    match '*path' => 'test_if_custom#CustomController' 

end 

class CustomController < ActionController::Base 

    def test_if_custom 
    if url_for(params) == Rails.application.routes.routes.map(&:path) 
     take_custom_action 
    else 
     take_default_action # Redirects or errors, maybe. 
    end 
    end 

end 
0

我建議有一個看friendly_id寶石,它可以從用戶的任何屬性定義定製的路線,所以你可以有一個:url用戶屬性,然後利用它來進行路由通過添加slug索引,然後把extend FriendlyId和用戶模型中的friendly_id :url, use: :slugged

相關問題