Ruby on Rails-communityt fortsätter att vara produktiva och släppa uppdateringar till sitt ramverk. Om du vill jobba med webbutveckling är det ett av ramverken du verkligen bör hålla koll på.
Strax släpps Rails 3.2 och med hjälp av DHH:s utmärkta bloggpost går vi igenom några av nyheterna.
Mycket snabbare utvecklingsläge
Tidigare har det mesta i din applikation laddats om inför varje request, men nu laddas enbart de klasser som du faktiskt ändrat sedan förra requesten om. Ni som har använt Active Reload tidigare vet precis vad jag pratar om. Det är enorm skillnad på snabbheten, speciellt om du börjar får ihop lite mer avancerade applikationer.
Härma MongoDB med Active Record Store
Att utveckla med MongoDB är snabbt och trevligt, men ofta behöver man stabiliteten hos MySQL och kanske inte är så sugen på att konvertera en äldre app till att använda en helt ny databas. Här kommer Active Record Store in som en räddande ängel.
Du kan spara en hash i bästa json-anda direkt mot valfri modell i Active Record genom att bara definiera följande i din modell:
class Website < ActiveRecord::Base
store :shop_settings, accessors: [ :currency, :vat_percentage]
end
Allt du sätter som accessors får egna metoder på objektet, vilket innebär att du kan komma åt @website.currency i exemplet ovan. Men du kan även arbeta med helt valfria värden genom att använda dig av @website.shop_settings[:valfritt_attribut]
Date Helpers anpassade för Sverige
Två killar vid namn Kim och Lennart har bidragit med ett extra attribut som du kan sätta på Date Helpers. Attributet heter :use_two_digit_numbers = true och kan användas för att få både dag och månad att visas med en inledande 0:a så att det alltid är samma antal siffror i datumet. Enkelt men bra.
Namespace på formulär
Ibland använder man många formulär vars input-fält får exakt samma id:n, vilket inte är helt lyckat. Rails 3.2 introducerar :namespace-attributet som ser till att du enkelt kan se till att id-värdena inte krockar. Tidigare har vi alltid fått sätta det manuellt, vilket inte blir så snyggt i koden.
First_or_create
Det här kommer att bli det föreslagna sättet att leta efter saker i databasen och skapa dem om de inte redan finns. Exempelvis:
Product.where(:name => "Gurka").first_or_create!(:price => 10)
Rails 3.2 är just nu i Release Candidate så det är inte riktigt färdigt för släpp än, men kommer antagligen ganska snart. Titta gärna i Changelog för Rails 3.2 för att se alla ändringar.