我正在尝试编写我的第一个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
答案 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