לבנות אתר מאפס ברובי און ריילס #3

ברוכים הבאים לפרק השלישי בסדרה, לבנות אתר מאפס ברובי און ריילס.

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

בתחילת הדרך הסברתי בקצרה איך נעבוד ב-TDD לאורך הפרויקט.

קישורים

כרגיל, אשמח לתגובות, דיון, הערות, הארות וכו'

את קובץ הוידאו המקורי (באיכות טובה הרבה יותר) אפשר להוריד מכאן

10 thoughts on “לבנות אתר מאפס ברובי און ריילס #3

  1. אבי, בנוגע למה שאמרת בסקרינקאסט על Guard- שאתה לא משתמש בו כי אתה מעדיף להישאר בתוך האדיטור, גם אני תהיתי למה אני צריך לעבור הלוך ושוב מהטרמינל לסאבליים כדי להריץ טסטים- יש לזה פתרון- חבילת Sublime-Guard שטוענת את גארד (או גארד וספורק למי שהתקין את guard-spork) בקונסול של הסאבליים, ובכל שמירה של Spec הטסטים הרלוונטיים ירוצו באופן אוטומטי, מבלי לצאת מהסאבליים לטרמינל לצורך העניין. Command+Shift+P ואז לבחור באופציה Guard:Start Guard. לדעתי זו האופציה הנוחה ביותר ל-TDD.

    את החבילה המקורית אפשר למצוא כאן- https://github.com/cyphactor/sublime_guard. אני ערכתי לה עוד כמה שינויים מינוריים בצבעים לצורך נוחות (להורדה- https://github.com/lidanh/sublime_guard).

    לגבי איכות הוידאו, האם תוכל להעלות להבא באיכות HD בוימאו (כמו בפוסט הקודם על TDD ספונטני ;-) )

    תודה!

  2. @לידן
    היי
    הסיבה שלא השתמשתי בהמלצה שלך היא שאני לא רוצה להריץ טסטים בכול שמירה.
    אני לפעמים מריץ טסטים רלוונטיים בלבד מתוך הקובץ דרך Sublime.

    זה נחמד מאוד להריץ בכול שמירה בUnit tests אבל לפעמים אני עובד על קובץ Integration specs שיש בו 30-40 טסטים, ואני ממש ממש לא רוצה להריץ בכול שמירה.

    לגבי איכות הוידאו, אני כבר עובד על זה מהבוקר, משום מה Vimeo מסרבים לשמור בHD, אני מעלה עכשיו לDropbox כדי לאפשר גם הורדה של הקובץ המקורי.

  3. Pingback: לבנות אתר מאפס ברובי און ריילס #5 | פיתוח תוכנה – אבי צוראל - Kenso

  4. אבי,

    קודם כל שאפו והמון תודה, אני נהנה מאוד מהסדרה עד כה.

    שאלה לגבי הסקרין קאסט:
    בסוף הסקרין קאסט, אתה מסיים בטסט של ה HAPPY PATH, הפאמטרים בBEFORE שאתה מעביר הם:
    @user = FactoryGirl.create(:user)
    @valid_params = { name: Faker::Company.name, status: :active, user: @user }

    אני לא מבין למה לא היית חייב להוסף את user כפרמטר ב:
    attr_accessible
    כלומר:
    attr_accessible :name, :status, :user

    אצלי הייתי חייב להוסיף אחרת נפלתי עם:
    ActiveModel::MassAssignmentSecurity::Error:
    Can't mass-assign protected attributes: user

    רעיון למה פספסתי?

  5. אבנר,

    יכול להיות שיש לך כבר attr_accesible.
    אצלי לא היה בכלל ולכן אני יכול לעשות Mass assignment למה שאני רוצה.
    ברגע שיש לך שדה אחד, אתה חייב להוסיף כול שדה, אחרת זה יכשל

  6. כאשר אני מוריד את לחלוטין את attr_accesible, אני מקבל את ה MASS ASSIGNMENT EXCEPTION לכל השדות בפרוייקט.

    אבל זה הכיוון, אני אבדוק, כנראה יש לי איזו שהיא הגדרה כללית שאני צריך לתקן.

    תודה.

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

    היו לי 2 בעיות או אי הבנות
    1. ברגע שרצית להוסיף עמודה של user_id לטבלת project
    בפקודת add_column כתבת :projects (ברבים)
    בפקודת remove_column כתבת project (ביחיד)
    אי אפשר להעלות כאן קבצים אך הנה הדוגמא
    http://img2.tapuz.co.il/forums/1_163171534.JPG
    ובכלל האם הסינקטס של הוספת עמודה לטבלה, שם הטבלה היא הפרמטר הראשון במתודה של add_column

    2. מתודת merge לאובייקט לא קיימת לי משום מה
    http://img2.tapuz.co.il/forums/1_163171676.png

    המון תודה

כתיבת תגובה

האימייל לא יוצג באתר. (*) שדות חובה מסומנים

*

תגי HTML מותרים: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>