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

ברוכים הבאים לפרק החמישי בסדרה, לבנות אתר מאפס ברובי און ריילס.
במידה ופיספסתם את הפרקים הקודמים, אתם מוזמנים לצפות ולהתעדכן: פרק 1פרק 2פרק 3, פרק 4

בפרק זה:

  1. יצירה של Subdomain.
  2. מעבר של משתמשים ל Subdomain שמשויך אליהם לאחר שנרשמו לאתר.
  3. אבטחה בסיסית של ה Subdomains.
  4. יצירה של בדיקות בסיסיות ל Subdomain עם RSpec.

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

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

  1. היי אבי

    מספר שאלות ברשותך-
    מה דעתך על הג'ם Shoulda לטסטים? לטובת מי שלא מכיר זה ג'ם שמקצר בהרבה את זמן הכתיבה של טסטים עם כל מיני Expectations שמיועדים ל-ActiveRecord.

    האם מומלץ להשתמש בו כדי לקצר זמן כתיבה? או שכדאי לכתוב טיפה יותר אבל לבדוק כמו שצריך כפילות של ערכים בדטבייס לדוגמה, במקום לוודא פשוט Validate uniqueness of של Shoulda?

    ושאלה נוספת כיצד אני יכול לבדוק התאמה של Regexים?

    הכוונה שלי שאם הגדרתי ששדה טלפון צריך להיות לפי פורמט מסוים, אני רוצה לתת כל מיני ערכים ולוודא שאין לי גלישה שפתאום ה-REGEX מתאים למשהו שאני לא רוצה… יש דרך לעשות את זה בקלות ובמהירות ב-Rspec? זו הסיבה אגב שהגעתי ל-SHoulda, ראיתי כמה דוגמאות שעושות בזה שימוש לטובת בדיקה של Regexים עם allow_value…

    שאלה אחרונה:
    האם יש הבדל בלבדוק ולידציה של המודל לפי השיטה שלך (עם מרג' של אובייקט valid_params) לעומת משהו כזה:

    it "is invalid without a name" do
    FactoryGirl.build(:project, name: nil).should_not be_valid
    end

    תודה רבה אבי והמשך יום טוב!

  2. לא עבדתי מעולם עם Shoulda מעבר למספר משחקים בעבר הרחוק יחסית.

    בגדול, אני עובד עם Rspec Expectations שזה מגיע Built In בRspec ואני מאוד אוהב את זה.

    ההבדל בין קטע הקוד שלך לבין Valid Params עם Merge הוא היכולת להגיב לשינויים בולידציות של המודל. אני מאוד אוהב את היכולת לבדוק כול פרמטר בנפרד.

  3. נכון, לכן אני כותב מראש Factory שעובר ולידציה (וכותב לזה טסט קצר שמוודא שהפקטורי של אותו מודל הוא ולידי, אחרת כל הבדיקות ייפלו ממילא), ואז יוצר את אותו פקטורי שעובר ולידציה, רק עם שדה X בערך nil.

    הטסט שבודק לי אם הפקטורי שלי הוא ולידי מראש:
    it "has a valid factory" do
    FactoryGirl.create(:person).should be_valid
    end

    והטסטים שבודקים את הולידציות של המודל:

    it "is invalid without a name" do
    FactoryGirl.build(:person, name: nil).should_not be_valid
    end

    it "is invalid without an email" do
    FactoryGirl.build(:person, email: nil).should_not be_valid
    end

    זה קצת יותר קצר מהשיטה של מרג' (אבל זהה לה ברעיון הכללי), השאלה שלי היא אם יש משהו שאני מפספס כאן שעקב מיעוט הניסיון שצברתי בריילס אני לא רואה אותו.

    תודה!

  4. אני לא חושב, וגם אני לא חושב שזה קריטי.

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

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

  5. היי אבי,
    סיימתי את 5 הסקרין קאסטים (לפניהם עשיתי רק את הguide של rails.com על בניית בלוג) ולמדתי המון.
    חבל לי שלא המשכתם עם זה כי זה אדיר.
    המון תודה.
    גל.

כתיבת תגובה

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

*

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