Subscribe to RSS Feed
Twitter
HIRE ME! home  archives  about  blogroll

i18n and Rails Engines

16 Jun 2009

Rails Engines, wie zijn ze? Wat doen ze? Maar vooral: hoe?

Rails 2.3 brings us much of the same functionality as the Rails Engines plugin. Learn how to embed one application into another in this episode.

Engines laten toe om de ene applicatie te gebruiken in een andere onder de vorm van een plugin. Zoals de screencast laat zien kan je simpelweg de app folder van een rails app integreren in de plugin van een andere. Alle models, controllers en views zijn beschikbaar. Heb je toch nog wat custom functionaliteit nodig dan kan je die toevoegen in de ‘eigenlijke’ app door het/de specifieke model/controller/view opnieuw te definieren. Hetzelfde voor de routes; heb je in de plugin-directory de routes.rb file meegenomen, wordt die ook netjes geladen.

Die i18n, hoe zit het daarmee? Je zou denken dat het met config/locales/*.yml files zo mooi werkt als met de app dir en routes.rb? Niet dus.

Gelukkig is het niet al te moeilijk op te lossen:

In environment.rb

config.i18n.load_path += Dir[Rails.root.join('vendor', 'plugins', 'your_plugin', 'config', 'locales', '*.{rb,yml}')]

Wanneer je de Rails cast liever leest: ASCIIcasts - 149: Rails Engines.