# Ruby on Rails

### מתוך ויקיפדיה, האנציקלופדיה החופשית

יש לך הודעות חדשות (השווה לגרסה הקודמת).

| ערך זה זקוק לעריכה, על מנת שיתאים לסגנון המקובל בוויקיפדיה. לצורך זה ייתכנו סיבות אחדות: פגמים טכניים כגון מיעוט קישורים פנימיים, סגנון הטעון שיפור או צורך בהגהה. אם אתם סבורים כי אין בדף בעיה, ניתן לציין זאת בדף השיחה שלו.

Ruby on Rails (ריילס או רור בקיצור) היא תשתית (Framework) כתיבת אפליקציות רשת הכתובה בשפת רובי (Ruby) כפרויקט קוד פתוח. ריילס מיישמת ארכיטקטורת MVC #אכיטקטורת מודל-תצוגה-בקרה (Model-View-Controller) ומיפוי אוביקטים לבסיס נתונים יחסי (ORM). עקרונותיה הם פשטות, אי-חזרה על קטעי קוד, שימוש במוסכמות במקום בקונפיגורציה ועל ידי כך מאפשרת כתיבת אפליקציות רשת בעזרת מעט מאוד שורות קוד יחסית לתשתיות ושפות אחרות.

## [עריכה] עקרונות מנחים

העקרונות המנחים את ריילס הם - DRY - Don't repeat yourself - אל תחזרו על עצמכם, ו"מוסכמות ולא הגדרות".

"אל תחזרו על עצמכם" - משמעותו שהגדרות צריכות להיכתב רק פעם אחת. כל ישות מוגדרת פעם אחת ובמקום אחד. עיקרון זה תורם לצמצום מספר שורות הקוד ליישום אפליקציה, ותורם רבות לצמצום מספר הבאגים באפליקציה.

"מוסכמות ולא הגדרות" - על התוכניתן לבצע קונפיגורציה (הגדרות) רק כאשר ההגדרות אינן מתנהגות בהתאם ל"מוסכמות" של ריילס. לדוגמה, אם יש מודל בשם Post באפליקציה, אזי טבלת בסיס הנתונים בו ישמור ערכי המודל תיקרא posts. אם התוכניתן חפץ לחרוג ממוסכמה זו, או אז עליח להגדיר את המיפוי החריג.

## [עריכה] היסטוריה

ריילס "זוקקה" מכלי לניהול פרויקטים בשם Basecamp, על ידי David Heinemeier Hansson. הגירסה הראשונה שוחררה ביולי 2004. גירסה 1.0 שוחררה ב-13 בדצמבר 2005, גירסה 1.1 נמצאת בשלבי ביטא (סוף מרץ 2006).

## [עריכה] מיפוי אוביקטים

ריילס מכילה שכבת מיפוי אובייקטים לבסיס נתונים. דהיינו - אם התוכניתנית מגדירה מודל בשם "User" המכיל פרטי משתמש, אזי המערכת תמפה את טבלת users מבסיס הנתונים למודל זה ובחזרה ממנו. דהיינו אם בזמן ריצה ישתנה ערך באוביקט, לדוגמה על ידי "myuser.name="guy" וקריאה ל-myuser.save אזי הערך ישמר בבסיס הנתונים בצורה אוטומטית. ריילס תומכת בכל בסיסי הנתונים הפופולריים. בנוסף לזאת, ריילס תומכת בפריסה ועדכון של גירסאות חדשות, והמרת בסיס הנתונים לתמוך בגירסאות החדשות בצורה יעילה ונטולת כאבים.

## [עריכה] ארכיטקטורת מודל-תצוגה-בקרה (Model-View-Controller Architecture (MVC

מודל

באפליקציות בסיסי נתונים מונחות אובייקטים, מודל מתמפה לטבלה בבסיס נתונים טבלאי. בריילס, מחלקות מודל יורשות מ ActiveRecord. ברגע שיורשים ממחלקה זו, המודל ממופה אוטומטית לטבלה בבסיס הנתונים, ויורש פונקציות גישה וחיפוש נתונים בצורה אוטומטית. כל השדות המופיעים בטבלה מתמפים לפונקציות הבאה (accessors / getters and setters). בנוסף, ריילס מאפשרת הגדרת יחסים בין מודלים, כגון: has_many וbelongs_to. כך, התוכניתנית יכולה להגדיר שBook belongs_to Author וריילס מאפשרת את כל השאר: חיפוש על פי הקישור, גישה לנתונים על ידי פקודות כגון: mybook.author=someauthor. זאת ועוד, ניתן להגדיר "מאמתים" validators אשר מוודאים בזמן ריצה כי הנתונים המסופקים עומדים בקריטריונים שהתוכניתנית הגדירה, כגון אורך מינימלי, המצאות בטווח מסוים וכו'.

תצוגה ב-MVC "תצוגה" הינו החלק האחראי על תצוגת המודל לפי התנאים שמוגדרים על ידי ה-"בקר". באפליקציות רשת, חלק זה כמעט ואין בו קוד, אלא בעיקר HTML בו משובצים ערכים מהמודל או מהבקר (בדומה ל-JSP ו-ASP - אך ללא כתיבת קוד). לכל מטודה בבקר יש לכתוב קוד תצוגה קצר. עימוד האתר נעשה במקום אחר, כך ניתן לשנות את מבנה ועימוד האתר בנפרד מפלט פעולות ספציפי.

בקרה הבקר מגיב לבקשות מהמשתמש, וקורא לביצוע לוגיקת באפליקציה. לאחר מכן הוא מקשר את תוצאות הריצה עם תבנית התצוגה. מטודות של הבקר מופעלות על ידי המשתמש על ידי קריאה להם מהדפדפן. כתוצאה מכך, ה-URLים של אפליקציית רשת שנכתבה בריילס הינם פשוטים והגיוניים, כך URL כגון: http://myblog.com/creation/show/15 קורא לבקר בשם creation מפעיל שם מטודה בשם show ומעביר לה פרמטר 15 המזהה מאמר בלוג מספר 15.

בנוסף, לריילס קיימת מערכת "פיגומים" המייצרת בצורה אוטומטית את כל דפי האפליקציה הנחוצים להוספה, מחיקה ושינוי של כל טבלאות הנתונים של האפליקציה.

## [עריכה] רכיבים נוספים

ריילס מגיעה עם רכיבים נוספים כגון: ActionMailer המנהל שליחת וקבלת דואר אלקטרוני ישר מ ואל האפליקציה, SOAP תמיכה במן שירותי SOAP מתוך האפליקציה, ספרייות ג'אווהסקריפט לעבודה קלה עם AJAX.

## [עריכה] קישורים חיצוניים

### [עריכה] אתרים רישמיים

- Ruby On Rails Project Homepage
- Rails Wiki
- Instant Rails – a Windows installer for Ruby, Rails, Apache, and MySQL
- Ruby on Rails Forum News and discussion forum.
- Ruby on Rails Podcast Interviews with Rails developers

### [עריכה] ספרים

- Agile Web Development with Rails, by Dave Thomas
- Programming Rails, by Robby Russell
- Ruby Cookbook: Rough Cuts Version, by Leonard Richardson

### [עריכה] בלוגים

- Planet Ruby on Rails
- What every webmaster MUST know about Ruby on Rails and AJAX
- Chad Fowler's blog (author of Rails Recipes)
- David Heinemeier Hansson's blog (father of Rails)
- Collection of Blog feeds

מקור: http://he.wikipedia.org../../../r/u/b/Ruby_on_Rails_95d8.html

קטגוריות: ויקיפדיה: ערכים הדורשים עריכה | פיתוח יישומי ווב

##### Views

- ערך
- שיחה
- גרסה נוכחית

##### קהילה

- שער הקהילה
- עזרה
- דלפק ייעוץ
- מזנון
- יצירת קשר
- ספר אורחים

##### חיפוש

##### שפות אחרות

- English
- Deutsch
- Esperanto
- Español
- Suomi
- Français
- Italiano
- 日本語
- Polski
- Português
- Русский
- Svenska
- ไทย
- 中文