מחיקת מודל מפרויקט Rails

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

זו הפקודה שהרצתי להוספת המודל

script/generate model contact user_id:integer type:integer

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

הדרכים לביצוע מחיקת מודל מפרויקט Rails

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

כמו שחשבתי, יש לריילס דרך לבצע את זה בקלות רבה (אם עדיין לא ביצעתם migration לבסיס הנתונים כמובן)

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

script/destroy model contact

פתרון לבאג I Follow בCucumber עם Capybara

בזמן עבודה על אפליקציה חדשה וכתיבת טסטים נתקלתי בבעיה שלקח לי זמן למצוא לה פתרון, אז חשבתי להקל על קהל הקוראים שלי ולכתוב פוסט על הפתרון (כתבתי גם באנגלית – A soltion for the “I Follow” bug with cucumber and Capybara)

זה הסנריו שכתבתי בשביל לבדוק מחיקה של פרויקט מתוך דף הבית של החשבון:

  Scenario: Deleting a project from the main page
    Given I am on the account home page
	When I follow "Delete Project"
	Then I should see "Your project has been deleted"

וזו השגיאה שהתקבלה בזמן ריצת הTest

#
undefined local variable or method `node' for #<Capybara::Driver::Node tag="a" ...
#

והנה גם צילום מסך שלה שיהיה ברור יותר
Screen shot 2010-11-23 at 5.36.24 PM
לאחר גירודי פדחת רבים וארוכים ובדיקה בכול הIssues הקיימים כמעט בRepository מצאתי לכך פתרון.

בקובץ env.rb ישנה שורה שצריך לעשות לה comment out, פשוט לסמן אותה בהערה ולהריץ את הטסט שוב, זה פתר לי את הבעיה

require 'cucumber/rails/capybara_javascript_emulation' # Lets you click links with onclick javascript handlers without using @culerity or @javascript

מקווה שאתם תשרפו פחות זמן ממני בזכות הפוסט הזה.