Der Rails 3.1 Release Candidate ist raus und ich wollte ihn mir einmal etwas genauer ansehen.
Die wichtigsten Neuerungen sind jQuery als Default Javascript Engine. Da ich schon lange jQuery verwende ist dies für mich natürlich eine große Freude.
Des weiteren gibt es nun ein paar neue Verzeichnisse:
/app/assets
/app/assets/stylesheets
/app/assets/javascripts
/app/assets/images
/vendor/plugins/assets
Und ein paar neue Standard Gems im Gemfile:
# Asset template engines
gem 'sass'
gem 'coffee-script'
gem 'uglifier'
gem 'jquery-rails'
Es befinden sich hierdurch nun weder Prototype noch jQuery Dateien im Projekt. Diese werden über das Gem mit eingebunden.
Coffee Script erleichter das schreiben von Javascript, es wird für den Browser in Javascript übersetzt, so das es in jedem Browser der Javascript beherrscht verwendet werden kann.
Für CSS wurde nun SASS hinzugefügt, damit hat man die Möglichkeit Variablen im CSS zu nutzen. Auch die SASS Dateien werden compiliert und erzeugen dann einfache CSS Dateien.
Um das ganz automatisch zu kompilieren und zur Verfügung zu stellen gibt es Sprocket. In der application.js und application.css stehen Anweisungen für Sprocket, Standardmäßig werden alle
Dateien in den entsprechenden Ordnern zusammengefasst und als eine JS bzw. CSS Datei bereit gestellt.
Nähere Infos gibt es in dem Artikel Rails 3.1: Understanding Sprockets and CoffeeScript
Gleich nach der Installation von Rails 3.1 habe ich mich daran gemacht Planetech um zustellen. Dabei bin ich auf einige Probleme gestossen.
Als erstes ist die Konstante RAILS_ENV nun gar nicht mehr Verfügbar, wodurch das Gem cached_model nicht mehr funktionierte. Auf Github habe ich eine
angepasste Version, mit der das Problem behoben wird.
Des weiteren habe ich nun noch zwei Gems mit denen ich Probleme habe: translate_routes und simple_form. Falls jemand eine Lösung kennt, kann er mir diese gerne mitteilen.
In einem Forum habe ich folgendes gefunden mit dem man das translate_routes plugin quasi ersetzen kann:
Please use this in you routes.rb: scope "(/:locale)" do resources :items end and in your application controller: class ApplicationController < ActionController::Base protect_from_forgery before_filter :set_locale def set_locale I18n.locale = params[:locale] end def default_url_options(options={}) {:locale => I18n.locale} end end config/application.rb: config.i18n.default_locale = :de
Kommentare (0) · Erstelle einen Kommentar
» Alle Kommentare RSS