سلام
کسی میتونه به طور کلی در مورد سه موضوع
Blameable Behaviors
Timestamp Behavior
و
Sluggable Behavior
یه توضیحی بده و بگه هر کدوم به چه دردی میخورن؟
راستش تعریف هاشونُ که مطالعه کردم متوجه نشدم
با تشکر.
سلام
کسی میتونه به طور کلی در مورد سه موضوع
Blameable Behaviors
Timestamp Behavior
و
Sluggable Behavior
یه توضیحی بده و بگه هر کدوم به چه دردی میخورن؟
راستش تعریف هاشونُ که مطالعه کردم متوجه نشدم
با تشکر.
[size="4"][right]خیلی سادست اصلا فکر نکن چیز پیچیده ایست.
شما فرض کن یک سایت خبری داری و میخوای کارمندی که یک خبر را مینویسد معلوم باشد، همچنین میخوای کارمندی که یک خبری که قبلا نوشته شده است را ویرایش میکند هم معلوم باشد. برای اینکار شما یک جدول مثل جدول زیر در دیتابیس درست میکنی
[NEWS]
id , title , created_by , updated_by
شما میتونی خودت یه کد بنویسی که هر دفعه وقتی یه نفر خبری را میسازه یا ویرایش میکنه آی دی اون نفر در ستونهای
created_by
و
updated_by
ذخیره بشه
از اونجایی که این نیاز برای خیلی جاها پیش میاد به جای اینکه شما هر دفعه بیای این کد را بنویسی میای
blameable behavior
را به مدلت (که در اینجا "خبر" است ) اضافه میکنی تا دقیقا همینکارو بکنه یعنی میاد این دوتا ستون را با آی دی کاربر سازنده یا ویرایشگر پر میکنه همین!
timestamp behavior
هم دقیقا همیکارو برای ستونهای زمان انجام میده یعنی فرض شما میخوای زمانی که یک خبر ساخته میشه یا زمانی که کسی یک خبر موجود را ویرایش میکند ثبت بشود دو ستون به جدولت اضافه میکنی
[NEWS]
id , title , created_by , updated_by, created_at , updated_at
و بجای اینکه هر دفه خودت برای اینکار کد بنویسی
timestamp behavior
را به مدلت اضافه میکنی تا اینکار برات انجام بده
slug
یکم کارش پیشرفته تره و برای خوشگل کردن
URL
بکار میره.
یعنی میخوای برای یک خبر به جای آدرس
"http://www.mynews.com/news/id/89893"
داشته باشی
"http://www.mynews.com/news/iran-attacks-israel"
برای اینکار به صرفه نیست که یک ستون اضافه کنی بلکه فقط کافیه یک
attribute
بنام
slug
به مدلت اضافه کنی و با اضافه کردن
sluggable behavior
هر بار که مدل را لود کنی
اسلاگ را با استفاده از ستون عنوان میسازه و پر میکنه تا بتونی باهاش آدرس مناسب بسازی.
ولی اینکه چطوری آدرس خوشگل بسازی خودش بحثی است دراز و طولانی
همه این رفتارها آپشنهای دیگه ای هم دارن که اونجوری ازشون استفاده کنی که دوست داری مثلا اگه دوست داری اسم ستون به جای
created_at
باشه
sakhte_shode_dar_tarikh
با یکم تنظیم میتونی اینو به
Timestamp Behavior
بفهمونی
[/right][/size]
بسیار ممنونم.
عجب خبری هم مثال زدی