در این نوشته روش ساخت یک اپلیکیشن مشابه اینستاگرام با استفاده از Ruby on Rails را توضیح می‌دهیم. مواردی که با مطالعه این راهنما یاد می‌گیرید را در ادامه فهرست کرده‌ایم:

فهرست مطالب این نوشته پنهان کردن
  • چگونه یک اپلیکیشن Rails جدید آغاز کنیم؟
  • طراحی سیستم از صفر
  • درک معماری MVC (مدل-ویو-کنترلر)
  • مدل: مهاجرت (Migration) به Active Record، اعتبارسنجی، فراخوانی، ارتباط، و اینترفیس کوئری.
  • ویو: تابع‌های کمکی Layout ،Partial و Form
  • کنترلر: Action-ها، پارامترهای Strong
  • مسیریابی Rails
  • ذخیره‌سازی Active برای آپلود فایل‌ها
  • استفاده از بوت‌استرپ، Devise ،Kaminari gem در اپلیکیشن‌های Rails.

در این مقاله با مباحث زیر آشنا خواهیم شد:

  • مجموعه‌های فناوری
  • کسب بینشی از MVC در Ruby on Rails
  • ایجاد اپلیکیشن‌های Rails جدید
  • استفاده از پایگاه داده PostgreSQL و بوت‌استرپ برای اپلیکیشن
  • فرایندهای Sign Up ،Sign In و Sign Out برای کاربران با استفاده از Devise gem
  • ایجاد صفحه پروفایل کاربری
  • ویرایش/به‌روزرسانی پروفایل کاربر

مجموعه فناوری‌های مورد نیاز در این مقاله به شرح زیر هستند:

بک‌اند:

  • Ruby 2.4
  • Rails 5.2.x
  • Database: Postgres 9.6

فرانت‌اند:

  • HTML, CSS, Javascript, jQuery
  • (Bootstrap (3.x or 4.x

MVC (مدل-ویو-کنترلر) در Ruby on Rails

MVC یک الگوی معماری برای اپلیکیشن‌های نرم‌افزاری است. این معماری برای طراحی وب اپلیکیشن‌ها بسیار محبوب است. MVC در PHP‌ به عنوان چارچوبی رایج برای توسعه وب کاربرد دارد. این معماری موجب جداسازی اپلیکیشن به دسته‌های زیر می‌شود:

  • مدل‌ها (Active Record): به مدیریت داده و منطق تجاری اپلیکیشن می‌پردازد.
  • ویو ها (ActionView): به مدیریت شیءهای اینترفیس و ارائه می‌پردازد.
  • کنترلرها (ActionController): بین مدل و ویو قرار می‌گیرد و با دریافت ورودی کاربر تصمیم می‌گیرد که با آن چه بکند.

چرخه درخواست-پاسخ در Rails

Request-Response Cycle in Rails

اگر بخواهیم این فرایند را به صورت فهرستی نشان دهیم، به صورت زیر خواهد بود:

  1. کاربر مرورگرش را باز می‌کند، یک URL وارد می‌کند و اینتر را می‌زند. زمانی که یک کاربر اینتر را میزند، مرورگر درخواستی به آن URL می‌فرستد.
  2. این درخواست به روتر Rails می‌رسد (config/routes.rb).
  3. روتر، URL را به کنترلر و اکشن صحیح نگاشت می‌کند تا این درخواست مدیریت شود.
  4. اکشن مربوطه درخواست را دریافت کرده و از مدل درخواست می‌کند که داده‌های مربوطه از پایگاه داده واکشی شوند.
  5. مدل، داده‌ها را به اکشن کنترلر بازمی‌گرداند.
  6. اکشن کنترلر داده‌ها را به ویو بازمی‌گرداند.
  7. ویو صفحه را به صورت HTML رندر می‌کند.
  8. کنترلر HTML را به مرورگر بازمی‌گرداند. سپس صفحه بارگذاری می‌شوند و کاربر می‌تواند آن را ببیند.

ایجاد اپلیکیشن‌های Rails جدید

برای ایجاد یک اپلیکیشن جدید در Rails باید مراحل زیر را طی کنیم:

نصب Rails

برای نصب Rails باید از دستور gem install استفاده کنیم که از سوی RubyGems ارائه شده است:

پس از نصب Rails اقدام به بررسی نسخه نصب شده می‌کنیم:

اگر چیزی مانند Rails 5.2.1 بازگشت یابد، می‌توانیم به کار خود ادامه داده و اپلیکیشن‌های جدید Rails ایجاد کنیم.

نصب PostgreSQL

در سیستم عامل Mac OSX می‌توان سرور و کلاینت PostgreSQL را از Homebrew نصب کرده:

سرویس Postgresql به صورت زیر آغاز می‌شود:

ایجاد اپلیکیشن جدید Rails

پس از ایجاد اپلیکیشن اینستاگرام به پوشه آن مراجعه کنید:

Gems را برای اپلیکیشن‌مان ایجاد کنید:

با دستور زیر نیز وب‌سرور را راه‌اندازی کنید:

برای مشاهده اپلیکیشن می‌توانید مرورگر خود را باز کرده و به آدرس http://localhost:3000/ مراجعه کنید. در این مرحله صفحه پیش‌فرض Rails را مشاهده خواهید کرد:

جهت متوقف کردن سرور نیز می‌توانید دکمه‌های Ctrl+G را در ترمینال وارد کنید.

ایجاد صفحه اصلی

  • یک کنترلر با یک اکشن ایجاد کنید.
  • یک مسیر اضافه کنید.

یک کنترلر به نام Home را با اکشن index ایجاد کنید:

Rails برخی فایل‌ها و یک مسیر برای شما ایجاد می‌کند:

فایل app/views/home/index.html.erb را باز کرده و کد موجود را با کد زیر جایگزین کنید:

وب‌سرور را ری‌استارت کنید. به این منظور می‌توانید ابتدا با دکمه‌های Ctrl+G سرور را متوقف کرده و سپس با دستور rails server آن را آغاز کنید و در مرورگر خود به آدرس http://localhost:3000/home/index بروید. بدین ترتیب پیام «This is my home page» را که در فایل iews/home/index.html.erb قرار داده‌اید، مشاهده می‌کنید. اینک فایل config/routes.rb را باز کنید:

و خط کدی که به صورت root ‘home#index’ است را اضافه نمایید. اینک کل کد باید به صورت زیر در آمده باشد:

  • بخش ‘get ‘home/index به Rails اعلام می‌کند که درخواست‌ها به آدرس http://localhost:3000/home/index را به اکشن index در کنترلر Home هدایت کند.
  • بخش ‘root ‘home#index به Rails اعلام می‌کند که درخواست‌ها به ریشه اپلیکیشن را به اکشن index در کنترلر home هدایت کند.

اینک وب‌سرور را ری‌استارت کرده و به آدرس http://localhost:3000 مراجعه کنید تا با پیامی به صورت «This is my home page» مواجه شوید. شما می‌توانید همه مسیرهای کنونی اپلیکیشن را با دستور زیر مشاهده کنید:

استفاده از PostgreSQL در اپلیکیشن Rails

برای استفاده از PostgreSQL در اپلیکیشن‌های Rails باید یک gem به نام pg را به Gemfile اضافه کنیم:

اینک برای نصب gem به نام pg دستور bundle install را اجرا کنید.

پیکربندی پایگاه داده (config/database.yml)

ایجاد پایگاه داده

برای ایجاد پایگاه داده برای اپلیکیشن می‌توانید از دستور مهاجرت (migration) استفاده کنید:

نصب بوت‌استرپ برای اپلیکیشن‌های Rails

«بوت‌استرپ» (Bootstrap) یک کیت ابزار اوپن‌سورس برای توسعه صفحه‌هایی با استفاده از HTML ،CSS و JS است. این فریمورک به ایجاد سریع نمونه‌های اولیه از ایده‌ها یا ساخت کل اپلیکیشن با استفاده از متغیرهای Saas و mixin ها، سیستم شبکه‌ای واکنش‌گرا، کامپوننت‌های پیش‌ساخته گسترده و افزونه‌های قدرتمند برای به‌کارگیری jQuery کمک می‌کند.

ما برای یکپارچه‌سازی بوت‌استرپ با اپلیکیشن‌های Rails از bootstrap-rubygem استفاده می‌کنیم. به این منظور bootstrap را به Gemfile خود اضافه کنید:

دستور bundle install را برای نصب bootstrap gem و ری‌استارت کردن سرور اجرا کنید تا فایل‌ها از طریق pipline در دسترس قرار گیرند.

پیکربندی روی application.css یا همان فایل app/assets/stylesheets/application.css

  • تغییر نام application.css به application.scss
  • سپس همه گزاره‌های *= require و *= require_tree را از فایل Sass حذف کنید. در عوض از import@ برای ایمپورت کردن فایل‌های Sass استفاده می‌کنیم.
  • ایمپورت کردن سبک‌های Bootstrap در application.scss:

پیکربندی روی application.js

بخش جاوا اسکریپت بوت‌استرپ به jQuety وابسته است. از آنجا که ما از Rails 5.1+ استفاده می‌کنیم، gem به نام jquery-rails را به Gemfile خود اضافه کنید:

وابستگی‌های بوت‌استرپ را اضافه کرده و به صورت application.js بوت‌استرپ کنید:

طرح‌بندی اپلیکیشن

در ادامه قصد داریم اپلیکیشن را در 3 بخش اصلی طرح‌بندی کنیم:

  • نوار ناوبری
  • محتوای اصلی
  • فوتر

این طرح‌بندی چیزی مانند تصویر زیر خواهد بود:

Rails از فایل طرح‌بندی پیش‌فرض در مسیر app/views/layouts/application.html.erb استفاده می‌کند.

کد HTML را به طرح‌بندی اضافه کنید (layouts/application.html.erb/):

استفاده از Awesome Icon

ما در اپلیکیشن خود از برخی آیکون‌های Font Awesome Icon استفاده می‌کنیم. برای استفاده آسان از این آیکون‌ها باید بتوانیم gem به نام font-awesome-rails استفاده کنیم.

کد زیر را به فایل زیر اضافه کنید:

و دستور bundle install را اجرا کنید. اینک font-awesome را به فایل application.scss اضافه کنید.

کد CSS را برای طرح‌بندی (application.scss) اضافه کنید.

کاربران: Sign Up ،Sign In و Sign Out

در این بخش ما قصد داریم از gem به نام devise برای ایجاد کارکردهای sign up، sign in و sign out برای کاربران استفاده کنیم. Devise یک راه‌حل احراز هویت انعطاف‌پذیر برای Rails است. این راه‌حل از 10 ماژول زیر تشکیل یافته است:

  • Database Authenticatable: این ماژول یک رمز عبور را هش کرده و در پایگاه داده برای اعتبار سنجی و احراز هویت کاربر در زمان ورود به اپلیکیشن استفاده می‌کند. احراز هویت می‌تواند از طریق درخواست‌های POST یا احراز هویت مقدماتی HTTP صورت بگیرد.
  • Omniauthable: پشتیبانی از (OmniAuth (https://github.com/omniauth/omniauth را ارائه می‌کند.
  • Confirmable: ایمیل‌هایی با دستور تأیید ارسال کرده و بررسی می‌کند که آیا یک حساب کاربری قبلاً در طی ورود کاربر تأیید شده یا نه.
  • Recoverable: رمز عبور کاربر را ریست کرده و دستورالعمل تنظیم مجدد آن را به ایمیلش ارسال می‌کند.
  • Registerable: ثبت نام کاربر را از طریق فرایند registration مدیریت کرده و به کاربران امکان ویرایش و حذف حساب‌هایشان را نیز می‌دهد.
  • Rememberable: ایجاد و پاک‌سازی توکن برای به‌خاطرسپاری کاربر از روی کوکی‌های ذخیره شده را مدیریت می‌کند.
  • Trackable: تعداد ورودها، زمان‌ها و آدرس‌های IP را ردگیری می‌کند.
  • Timeoutable: نشست‌هایی که در دوره زمانی مشخصی فعال نبوده‌اند را منقضی می‌کند.
  • Validatable: اعتبارسنجی‌های ایمیل و رمز عبور را انجام می‌دهد. این گزینه اختیاری است و می‌توان آن را سفارشی‌سازی کرد، به طوری که می‌توان تابع‌های خاص برای اعتبار سنجی تعریف کرد.
  • Lockable: یک حساب را پس از تعداد مشخصی از تلاش‌های شکست‌خورده برای ورود قفل می‌کند. چنین حساب‌هایی را می‌توان پس از گذشت زمان مشخصی از حالت قفل خارج کرد.

نصب Devise Gem

برای نصب devise باید کد زیرا را به Gemfile اضافه کنید:

سپس دستور bundle install را وارد کرده و generator را اجرا کنید:

ما 2 فایل زیر را به صورت خودکار تولید کرده‌ایم:

  • config/initializers/devise.rb
  • config/locales/devise.en.yml

به منظور راه اندازی گزینه‌های پیش‌فرض URL برای ارسال کننده ایمیل Devise در محیط توسعه، یعنی فایل config/environments/development.rb، کد زیر را وارد کنید:

در محیط Production مقدار :host باید به میزان واقعی اپلیکیشن اشاره کند.

تولید مدل کاربر

به این منظور باید از دستور زیر استفاده شود:

پس از اجرای دستور فوق یک فایل برای ایجاد کاربر، یک فایل در app/models به نام user.rb و یک مسیر برای کاربر و فایل تست ایجاد می‌شوند.

فایل مدل یعنی app/models/user.rb را باز کنید تا ماژول‌های پیش‌فرض devise را که در مدل کاربر وجود دارند ببینید.

سپس دستور زیر را اجرا کنید:

اینک باید اپلیکیشن را پس از تغییر دادن گزینه‌های پیکربندی Devise ری‌استارت کنید. در غیر این صورت با خطاهای عجیبی مواجه خواهید شد، برای نمونه ممکن است کاربران نتوانند وارد اپلیکیشن شوند یا تابع‌های کمکی مسیر تعریف‌نشده باشند.

افزودن لینک‌های ورود و خروج

در نوار ناوبری سمت راست باید لینک‌های sign_in و sign_out را به صورت زیر اضافه کنید. دقت کنید که کد HTML زیر را در طرح‌بندی (application.html.erb):

با کد زیر عوض کنید:

توضیح برخی عناصر به صورت زیر است:

  • ?user_signed_in: یک تابع کمکی devise است که کاربر وارد شده را تأیید می‌کند.
  • destroy_user_session_path: مسیر خروجی است، method::delete متد پیش‌فرض HTML مورد استفاده برای خارج شدن یک منبع (کاربر) است.
  • new_user_session_path: مسیر خروجی است.

زمانی که روی آیکون خروج کلیک کنید، با ویویی مانند زیر مواجه می‌شوید:

اما پیش از این که بتوانید دوباره وارد شوید باید یک حساب جدید با کلیک روی لینک Sign up در زیر دکمه Log in ایجاد کنید. ویوی این صفحه ثبت نام به صورت زیر است:

با پر کردن آدرس ایمیل و رمز عبور می‌توانید ثبت نام کنید و سپس به صفحه ورود اپلیکیشن بروید.

زمانی که ثبت نام موفق بود، آیکون ورود با آیکون کاربر در نوار ناوبری تعویض می‌شود و اگر روی آیکون کاربر کلیک کنید می‌توانید از اپلیکیشن خارج شوید.

ایجاد صفحه پروفایل کاربر

جدول کاربر ستون‌هایی به صورت username ،name ،email ،password ،website، bio ،phone و gender است. کاربر از قبل دارای ستون‌های ایمیل و رمز عبور است و اینک باید فیلدهای دیگر را با استفاده از migration اضافه کنیم:

migration را اجرا کنید:

ایجاد کنترلر کاربر

برای ایجاد صفحه پروفایل کاربر نخستین گام این است که یک کنترلر به نام UsersController را با استفاده از دستور زیر ایجاد کنیم:

سپس فایل app/controllers/users_controller.rb را در ویرایشگر باز کنید تا کدی مانند زیر را ببینید:

در مرحله بعد یک اکشن show به UsersController اضافه می‌کنیم:

سپس یک ویوی متناظر به صورت زیر ایجاد می‌کنیم:

در نهایت اکشن show را به مسیرها (config/routes.rb) اضافه می‌کنیم:

بخش [resources:users, only: [:show به Rails اعلام می‌کند که درخواست‌هایی که به آدرس http://localhost:3000/users/:id دریافت می‌کند را به اکشن show کنترلر کاربر با id به صورت ID جاری کاربر هدایت کند. اگر ID کاربر جاری برابر با 1 باشد، مسیر به صفحه پروفایل کاربر به صورت زیر خواهد بود:

به‌روزرسانی لینک پروفایل کاربر در نوار ناوبری

در سمت راست نوار ناوبری، لینک logout را با لینک پروفایل کاربر تعویض می‌کنیم. این بدان معنی است که وقتی روی آیکون کاربر کلیک می‌کنیم باید به صفحه پروفایل کاربری برود. پس از به‌روزرسانی کد HTML به صورت زیر درمی‌آید:

ایجاد UI برای صفحه پروفایل کاربر

برای طرح‌بندی صفحه پروفایل کاربر دو بخش را در نظر داریم: یکی اطلاعات پایه و دیگر پست‌ها.

  • اطلاعات پایه: شامل آواتار، نام، نام کاربری، پست‌ها، فالوورها، فالووینگ‌ها.
  • پست‌ها: شامل تصاویر کاربر.

بخش 1: اطلاعات پایه کاربر

 تصویر نمونه‌ای از بخش اطلاعات پایه
تصویر نمونه‌ای از بخش اطلاعات پایه

این بخش شامل دو ستون است که ستون سمت چپ آواتار کاربر و ستون سمت راست شامل اطلاعات کاربر است. برای طرح‌بندی این وضعیت از ردیف‌ها و ستون‌ها استفاده می‌کنیم و کد HTML مربوطه به صورت زیر است:

از آنجا که ما هیچ داده‌‌ای برای برخی فیلدهای اطلاعات کاربر مانند نام، تعداد پست، فالوور، فالووینگ و تصاویر نداریم، از این رو باید از برخی اطلاعات ساختگی برای ساخت UI استفاده کنیم تا بعداً بتوانیم آن‌ها را به‌روزرسانی کنیم. پس از افزودن کامپوننت‌های دیگر در این بخش، کد HTML به صورت زیر درمی‌آید:

برای ایجاد CSS برای این ویو، یک فایل به نام assets/stylesheets/users.scss می‌سازیم که شامل سبک‌های مورد نیاز باری ین صفحه است و آن را در فایل application.scss ایمپورت می‌کنیم:

کدهای CSS زیر را به فایل users.scss اضافه کنید:

اینک ویوی ما به صورت زیر درمی‌آید:

 اطلاعات پایه کاربر
بخش 1: اطلاعات پایه کاربر

بخش 2: پست‌های کاربر

در این مرحله 4 برگه زیر به صورت POSTS ،IGTV ،SAVED، و TAGGED را مانند تصویر زیر اضافه می‌کنیم:

و کد سبک دهی آن‌ها نیز به صورت زیر است:

بخش تصاویر شامل سه ستون خواهد بود که در هر ردیف سه تصویر به نمایش درمی‌آید:

کد HTML:

ما از تکنیک Flexbox در CSS برای طرح‌بندی این تصاویر استفاده کردیم که کد آن به صورت زیر است:

در نهایت صفحه پروفایل کاربر به صورت زیر درمی‌آید:

صفحه پروفایل کاربر

اینک ما توانسته‌ایم صفحه پروفایل کاربر را ایجاد کنیم و در گام بعدی صفحه ویرایش/به‌روزرسانی پروفایل کاربر را اضافه می‌کنیم.

ویرایش/به‌روزرسانی کاربر

مراحل ایجاد صفحه ویرایش کاربر را می‌توان در 4 گام زیر خلاصه کرد:

  • مرحله 1: افزودن صفحه ویرایش کاربر
  • مرحله 2: طرح‌بندی صفحه ویرایش کاربر
  • مرحله 3: افزودن لینک‌های ناوبری به سمت چپ صفحه
  • مرحله 4: افزودن فرم ویرایش پروفایل به سمت راست صفحه

UI صفحه ویرایش پروفایل به صورت زیر است:

صفحه ویرایش کاربر
صفحه ویرایش کاربر

مرحله 1: افزودن صفحه ویرایش کاربر

در گام نخست باید یک اکشن با نام edit در کنترلر UsersController اضافه کنیم:

سپس یک ویوی متناظر به نام app/views/users/edit.html.erb اضافه می‌کنیم. پس از آن اکشن edit را به مسیرها اضافه می‌کنیم:

اینک می‌توانید مسیر صفحه ویرایش کاربر را با وارد کردن دستور زیر مشاهده کنید:

بخش [resources:users, only: […,:edit به Rails اعلام می‌کند که درخواست‌های دریافتی به آدرس http://localhost:3000/users/:id/edi را به اکشن edit کنترلر کاربر هدایت کنید. لینک ویرایش پروفایل را به دکمه Edit Profile در صفحه پروفایل کاربر اضافه کنید:

current_user یک تابع کمکی devise است که کاربر جاری آن خارج شده است.

مرحله 2: طرح‌بندی صفحه ویرایش پروفایل

ما طرح‌بندی صفحه ویرایش کاربر را با 2 ستون انجام دادیم. ستون چپ action-ها و ستون راست جزییات متناظر هستند.

طرح‌بندی صفحه ویرایش کاربر
طرح‌بندی صفحه ویرایش کاربر

کد HTML این صفحه به صورت زیر است:

کد CSS آن نیز با استفاده از تکنیک flex به صورت زیر خواهد بود:

مرحله 3: افزودن ناوبری به سمت چپ صفحه

ما از کامپوننت‌های navs بوت‌استرپ 4 با چینش عمودی در این بخش استفاده می‌کنیم. کد HTML آن به صورت زیر است:

همچنین کد CSS برای بخش اکشن‌ها به صورت زیر است:

اینک UI این بخش به صورت زیر در آمده است:

سمت چپ صفحه ویرایش کاربر

مرحله 4: افزودن فرم ویرایش کاربر به سمت راست صفحه

یک خط کد برای یافتن کاربر جاری به اکشن edit در articles_controller.rb اضافه می‌کنیم:

در ستون سمت راست یک فرم برای به‌روزرسانی کاربر جاری اضافه می‌کنیم. ما از تابع کمکی form_with در Rails برای ایجاد فرم استفاده می‌کنیم. فرم ویرایش کاربر به صورت زیر است:

کد CSS نیز به صورت زیر خواهد بود:

اینک UI فرم به صورت زیر آمده است:

زمانی که اطلاعات را در فرم وارد کرده و دکمه submit را برای پردازش به‌روزرسانی کاربر بزنید، با خطای عدم مطابقت هیچ مسیر مانند تصویر زیر مواجه می‌شوید:

این خطا به این جهت رخ می‌دهد که تا به این جا هیچ مسیری برای کاربر تعریف نکرده‌ایم. اینک باید یک مسیر برای update کاربر به routes.rb اضافه کنیم:

اینک اگر مجدداً فرم را پر کرده و دکمه submit را بزنیم، با یک خطای دیگر به صورت زیر مواجه می‌شویم:

اکشن update نمی‌تواند پیدا شود، بنابراین باید یک اکشن update در UserController به صورت زیر ایجاد کنیم:

ما در اکشن update سعی می‌کنیم کاربر جاری را بر اساس پارامترهایی که در فرم ویرایش پر شده‌اند، به‌روزرسانی کنیم. منظور از current_user همان کاربری است که در حال حاضر به اپلیکیشن وارد شده است. اگر بار دیگر تلاش کنیم دکمه submit را بزنیم، با خطایی مانند زیر مواجه می‌شویم:

خطای خصوصیات ممنوعه

Rails از برخی خصوصیات پشتیبانی می‌کند که به نوشتن اپلیکیشن‌های امن کمک می‌کند. این خصوصیت strong parameters نامیده می‌شوند که ما را ملزم می‌کنند تا تعریف کنیم کدام پارامترها در اکشن‌های کنترلرها مجاز هستند. ما باید پارامترهای خود را در لیست سفید قرار دهیم تا از انتساب‌های جمعی اشتباه جلوگیری کنیم.

بنابراین فعلاً برای اصلاح ForbiddenAttributesError باید از پارامترهای strong پیش از به‌روزرسانی کاربر بهره بگیریم. برای بهره‌گیری از پارامترهای strong در این مثال باید از متدهای require و permit به صورت زیر استفاده کنیم:

این بدان معنی است که پارامترهای username, name, website, bio, email, phone و gender به عنوان پارامترهای معتبر، مجاز هستند. اکنون اکشن update به صورت زیر در آمده است:

اینک باید به فرم ویرایش بازگردیم و دوباره فرم را ارائه کنیم. این بار فرم کار می‌کند و به‌روزرسانی کاربر موفق خواهد بود و سپس به صفحه پروفایل کاربر هدایت می‌شویم.

برای این که بتوانیم تغییر اطلاعات را پس از به‌روزرسانی اطلاعات کاربر به سهولت ببینیم، باید به صفحه پروفایل کاربر (users/show.html.erb) بازگردیم تا برخی داده‌های جعلی را با وارد کردن داده‌های واقعی کاربر عوض کنیم. کد HTML به صورت زیر است:

سخن پایانی

در این مقاله به توضیح گام به گام روش ساخت یک اپلیکیشن Rails به کمک PostgreSQL و Bootstrap پرداختیم. همچنین درکی از مفهوم MVC در Rails کسب کردیم. با استفاده از devise gem اقدام به ساخت تابع‌های احراز هویت کردیم و در نهایت تابع‌هایی برای مشاهده و به‌روزرسانی پروفایل کاربر نوشتیم. در مقاله بعدی جزییاتی در مورد (Active Record (CRUD، اعتبارسنجی، ارتباط، خصوصیت Active Storage و استفاده از Kaminari gem برای صفحه‌بندی ارائه می‌کنیم.

در صورت تمایل برای مطالعه بخش دوم این مطلب، روی لینک زیر کلیک کنید:

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

«میثم لطفی» دانش‌آموخته ریاضیات و شیفته فناوری به خصوص در حوزه رایانه است. وی در حال حاضر علاوه بر پیگیری علاقه‌مندی‌هایش در رشته‌های برنامه‌نویسی، کپی‌رایتینگ و محتوای چندرسانه‌ای، در زمینه نگارش مقالاتی با محوریت نرم‌افزار نیز با مجله فرادرس همکاری دارد.

بر اساس رای 1 نفر

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *