Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.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_Routing_Initialization - Fatal编程技术网

Ruby on rails 在初始值设定项中设置Rails路由

Ruby on rails 在初始值设定项中设置Rails路由,ruby-on-rails,ruby,routing,initialization,Ruby On Rails,Ruby,Routing,Initialization,我正在用RubyonRails构建一个web应用程序,我希望路由可以由用户编辑。因此,我想添加一个简单的初始值设定项来添加用户指定的路由,但我真的不知道如何才能做到这一点。有什么简单的方法吗?我在应用程序.rb上尝试了这个: config.after_initialize do Rails.application.reload_routes! Rails.logger.info "#{Rails.application.routes.routes.map(&:path)}

我正在用RubyonRails构建一个web应用程序,我希望路由可以由用户编辑。因此,我想添加一个简单的初始值设定项来添加用户指定的路由,但我真的不知道如何才能做到这一点。有什么简单的方法吗?我在
应用程序.rb上尝试了这个:

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
MyApp::Application.routes.draw do
    devise_for :users 

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

end
但这似乎不起作用。这是我的
路线中的路线。rb

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
MyApp::Application.routes.draw do
    devise_for :users 

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

end

提前谢谢

我建议看一下gem,它可以从用户的任何属性定义自定义路由,因此您可以有一个
:url
用户属性,然后通过添加
slug
索引,然后将
扩展FriendlyId
FriendlyId:url,将其用于路由,在用户模型中使用::sluged

如何进行控制器操作,在参数中执行,测试它们是否与配置的路由匹配,然后从那里执行操作

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
MyApp::Application.routes.draw do
为:用户设计
root:to=>'target_finder#show_page'
匹配“*路径”=>“测试_如果_自定义#自定义控制器”
结束
类CustomController
请给我们一万英尺的视野,看看你在这里想做什么,因为我们只能猜测这背后的真正问题是什么。