Rails新手:如何添加路由到rails 3引擎?

时间:2010-10-08 09:04:20

标签: ruby-on-rails routing ruby-on-rails-3

我正在尝试编写我的第一个rails 3 gem - 一切运行良好,除了路线 - 我似乎无法让它们正常工作。这可能是一个非常简单的错误 - 如上所述,这是我第一次使用引擎。宝石本身非常非常基本 - 只是一个支架

我的宝石的配置/路线文件:

class ActionController::Routing::RouteSet
  resources :frogs
end

...当我尝试启动服务器时,出现以下错误:

  

/home/john/.rvm/gems/ruby-1.9.2-p0/gems/cancandevise-0.1.0/config/routes.rb:3:in   <class:RouteSet>': undefined method 资源'   ActionDispatch ::路由:: RouteSet:类   (NoMethodError)

任何建议都非常感谢。目前,宝石只不过是一个非常基本的轨道生成的“青蛙”脚手架

干杯,            - JB

3 个答案:

答案 0 :(得分:5)

@marcgg,我相信这是常规rails应用程序的语法,但我认为他在谈论引擎。

@unclaimedbaggage,您的引擎/ gem路由文件应如下所示:

Rails.application.routes.draw do |map|
  resources :frogs
end

我制作了一个示例引擎,它触及了我在创建第一个gem时遇到的所有常见设置问题,您可能会发现它有助于引用:

http://keithschacht.com/creating-a-rails-3-engine-plugin-gem/

答案 1 :(得分:2)

我不确定我是否明白为什么你要使用路由集。你显示了什么文件?你试过这个:

   YourApp::Application.routes.draw do |map|  
     resources :frogs
   end

此处有更多信息:http://asciicasts.com/episodes/203-routing-in-rails-3

答案 2 :(得分:0)

我想在这里添加替代方案,因为我不确定@Keith Schact是以conventional的方式做到这一点,这对我有用:

mylaptop$ nmap -p 8080 172.22.146.9

Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-07 11:05 PDT
Nmap scan report for snmplab-linux9.cisco.com (172.22.146.9)
Host is up (0.0018s latency).
PORT     STATE SERVICE
8080/tcp open  http-proxy

Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds

然后在需要gem的应用程序中:

MyEngine::Engine.routes.draw do resources :frogs end

您将获得的网址是:

mount MyEngine::Engine => '/my_engine', :as => :some_namespace