Es, básicamente, tiene que hacer dos cosas:
Usted necesita decir el router rieles que una cierta ruta URL es para ser manejado por otra aplicación Rack (en su caso una aplicación Sinata). Esto puede hacerse mediante la adición de esto a su routes.rb:
match "/sinatra" => MySinatraApp, :anchor => false
Una vez hecho esto, usted puede crear su aplicación, así:
class MySinatraApp < Sinatra::Base
get "/" do
"Hello Sinatra World"
end
end
El segundo paso ahora es decirle a su aplicación a Sinatra utilice el diseño de rieles que por defecto vive en app/views/layouts/application.html.erb
para Rails 3.1. de forma predeterminada, Sinatra usa ./views/layout.ext
(siendo ext
la extensión de su sistema de plantilla elegido).Así que, básicamente, tiene que decirle a Sinatra
- uso otro directorio para encontrar puntos de vista y diseños en lugar de la opción predeterminada
./views
- uso otro archivo de plantilla como el diseño predeterminado.
Tanto se puede lograr mediante el establecimiento de lo siguiente en su aplicación Sinatra:
set :views, "/path/to/your/railsapp/views"
set :erb, layout => :"layout/application" # or whatever rendering engine you chose
El problema aquí es que no se puede Sinatra manejar los ayudantes de rieles que uso en el diseño de mis rieles (y los diversos complementos de rieles) – Mike
Bueno, entonces tal vez deberías quedarte con Rails. La belleza de Sinatra es que viene sin muchas cosas que no necesitarías en ciertos entornos. Pero si ya tiene la infraestructura que necesita (ayudantes, complementos, ...), no tiene mucho sentido dejar eso atrás. Usa Sinatra para las áreas que pueden sostenerse por sí mismas. –
Claro que solo quería construir una mini extensión para mi aplicación que pudiera ser reutilizable por múltiples aplicaciones de rack. Pero me quedaré con los motores de rieles. – Mike