روبی آن ریلز برگرفته از پروژهٔ بیسکمپ توسط دیوید هاینمیر هانسن بود که ابتدا یک ابزار مدیریت پروژه توسط شرکت 37signals بود. در ۱۳۸۳، هاینمیر هانسن ریلز را به عنوان یک نرمافزار آزاد و متنباز منتشر کرد اما تا فوریه سال ۱۳۸۴ حقوق انتشار آن را به اشتراک نگذاشت. در سال ۱۳۸۵، این چارچوب به مرحلهای رسید که شرکت اپل اعلام کرد که در سال ۱۳۸۶ روبی آن ریلز به عنوان یک چارچوب پیشفرض در سیستمعامل مک اواس نسخهٔ ۱۰٫۵ قرار خواهد گرفت.
مانند دیگر چارچوبهای وب، ریلز هم از معماری مدل-نما-کنترلگر برای سازماندهی برنامهنویسی نرمافزار، استفاده میکند.
روبی آن ریلز شامل ابزاری است که کارهای تکراری و مشترک توسعهٔ نرمافزار را بسیار ساده میکند، ابزاری مانند داربست، تعدادی از مدلها و نماها را به صورت خودکار که برای هر وبسایت نیاز است را میسازد. همچنین شامل یک وب سرور ساده WEBRick و یک ابزار ساخت سیستم Rake است. ریلز و این ابزار، با یکدیگر یک محیط توسعهٔ پایهای را فراهم میکنند.
برنامههای روبی آن ریلز برای اجرا شدن نیاز به یک وب سرور دارند. در هنگام نوشتن این مطلب Mongrel، بر WEBRick ترجیح داده میشود اما شما میتوانید از وب سرورهای دیگری مانند لایتی, Abyss, آپاچی و خیلی دیگر از وب سرورها استفاده کنید. از سال ۱۳۸۷ به بعد، وب سرور پسنجر Passenger از لحاظ استفاده شدن جای وب سرور Mongrel را گرفت. به تازگی، وب سرور Unicorn محبوبیت خوبی برای انتشار Deployment پیدا کرده است.
یکی از ویژگیهای با ارزش ریلز Rails استفاده از کتابخانههای بزرگ جاوااسکریپت Prototype و script.aculo.us برای ایجکس Ajax است. در ابتدا ریلز از پروتکل دسترسی آسان به اشیاء برای دسترسی به خدمات وب استفاده میکرد، اما بعد آن جایگزین خدمات وب RESTful شد.
از نسخه ۲٫۰، روبی آن ریلز به صورت پیشفرض خروجیهای HTML و XML را ارائه میدهد. دومی، ابزاری برای خدمات وب RESTful است.
روبی آن ریلز در چندین بسته ارائه میشود، اکتیو رکورد Active Record معروف (یک ORM برای دسترسی به پایگاه داده)، اکتیو ریسورس Active Resource (سرویسهای وب را مهیا میکند)، اکشن پَک Action Pack، اکتیو ساپورت Active support و اکشن میلر Action Mailer بستههای استاندارد در ریلز هستند. قبل از نسخهٔ ۲، ریلز دارای بستهٔ دیگری به نام اکشن وب سرویس Action Web Service بود که در حال حاضر با اکتیو ریسورس Active Resource جایگزین شده است. جدا از بستههای استاندارد ریلز، توسعهدهندگان میتوانند پلاگینهایی برای گسترش بستههای ریلز بنویسند.
منبع:نرمافزام
- ۹۶/۰۵/۳۱