Como posso disponibilizar rotas de um mecanismo do Rails 3 para o aplicativo host?
Eu tenho um aplicativo Rails 3 com vários mecanismos que contêm funcionalidades adicionais. Cada mecanismo é um serviço separado ao qual os clientes podem adquirir acesso.
No entanto, estou tendo um problema com rotas dos mecanismos que não estão prontamente disponíveis para os controladores e visualizações.
controlador:
class ClassroomsController < ApplicationController
..
respond_to :html
def index
respond_with(@classrooms = @company.classrooms.all)
end
def new
respond_with(@classroom = @company.classrooms.build)
end
..
end
app/views/classrooms/new.html.haml
:
= form_for @classroom do |f|
..
f.submit
config/routes.rb
no motor:
MyEngineName::Engine.routes.draw do
resources :classrooms
end
config/routes.rb
no aplicativo:
Seabed::Application.routes.draw do
mount MyEngineName::Engine => '/engine'
...
end
lib/my_engine_name.rb
no motor:
module MyEngineName
class Engine < ::Rails::Engine
end
end
tentando ir para/classrooms/new
resulta em
NoMethodError in Classrooms#new
Showing app/views/classrooms/_form.html.haml where line #1 raised:
undefined method `hash_for_classrooms_path' for #<Module:0x00000104cff0f8>
e tentando ligarclassrooms_path
de qualquer outra visualização resulta no mesmo erro. No entanto, posso ligarMyEngineName::Engine.routes.url_helpers.classrooms_path
e fazê-lo funcionar. Acho que posso ter definido as rotas incorretamente, mas não consigo encontrar outra maneira de funcionar.
Tentei executar o aplicativo com o Passenger (módulo independente e Apache) e WEBrick (servidor rails). Usando o Rails mais recente do Git (7c920631ec3b314cfaa3a60d265de40cba3e8135
)