সিনাট্রা ব্যবহার করে কীভাবে সিআরইউডি, এমভিসি অ্যাপ তৈরি করবেন!

সবাইকে স্বাগতম! এই ব্লগটি আপনাকে সিনেট্রা ব্যবহার করে কীভাবে একটি কাস্টম সিআরইউডি, এমভিসি অ্যাপ তৈরি করতে শেখাতে চলেছে। সিনাত্রা হ'ল একটি ফ্রি এবং ওপেন সোর্স সফটওয়্যার ওয়েব অ্যাপ্লিকেশন লাইব্রেরি এবং রুবিতে লেখা ডোমেন-নির্দিষ্ট ভাষা specific সিনেট্রা হালকা ওজনের, নমনীয় এবং সহজ এবং গতিশীল রুবি ওয়েব অ্যাপ্লিকেশন তৈরির জন্য আপনাকে খালি ন্যূনতম প্রয়োজনীয়তা / বিমূর্ততা সরবরাহ করার জন্য ডিজাইন করা হয়েছে। চল শুরু করি!

আমাদের লক্ষ্য: একটি সাধারণ জার্নালিং অ্যাপ তৈরি করুন।

  1. আমাদের ব্যবহারকারীর ত্রুটিগুলি দেখান
  • জিইটি / ব্যর্থতা

2. একটি ব্যবহারকারী অ্যাকাউন্ট তৈরি করুন

  • জিইটি / সাইনআপ
  • পোস্ট / সাইনআপ

৩. ব্যবহারকারী হিসাবে লগ ইন করুন

  • জিইটি / লগইন করুন
  • পোস্ট / লগইন

4. এন্ট্রি উপর CRUD

  • জিইটি / এন্ট্রি
  • GET \ / এন্ট্রি / নতুন
  • পোস্ট / এন্ট্রি
  • GET \ / এন্ট্রি /: আইডি / সম্পাদনা করুন
  • প্যাচ \ / এন্ট্রি /: আইডি
  • মুছে ফেলুন \ / এন্ট্রি /: আইডি

প্রথম পদক্ষেপটি হ'ল আপনার কমান্ড-লাইনটি খুলুন এবং আপনার জার্নালিং অ্যাপের জন্য একটি রুট ডিরেক্টরি তৈরি করুন। আপনি যা চান ফাইলটির নাম দিন ("এমকেডির" পরে)। হিট রিটার্ন এবং তারপরে ফাইলটিতে সিডি করুন।

এমকেডির সিনট্রা_এপ

এবং তারপর

সিডি সায়াত্রা_এপ

"সিনাত্রা যাদু" এর জন্য কাঠামোটি তৈরি করতে আপনার প্রয়োজনীয় সমস্ত সরঞ্জাম পূরণ করার জন্য আপনার কাছে একটি খালি প্রকল্প ডিরেক্টরি থাকবে।

দ্বিতীয় পদক্ষেপটি আপনার ফাইলগুলি তৈরি করা।

আপনার রুট ডিরেক্টরিতে একটি জেমফিল তৈরি করতে আমি টার্মিনালে বান্ডেল ডিআই চালিয়ে শুরু করতে চাই। এখানে আমরা আমাদের অ্যাপের জন্য প্রয়োজনীয় সমস্ত নির্ভরতা তালিকাবদ্ধ করব।

বান্ডিল init

আপনার জন্য লাইন 1–7 তৈরি করা হবে তবে আপনাকে 8-29 লাইন ইনপুট করতে হবে। (লাইন 8) আপনাকে আপনার মডেলগুলির উপর নজর রাখতে সহায়তা করবে। এটি ইনস্টল করার সময় থেকে আপনার যখন এটির প্রয়োজন হয় তখন এটির আলাদা নাম থাকে। প্রয়োজনীয় বৈশিষ্ট্য সহ আপনি এটি নির্দিষ্ট করতে ভুলবেন না তা নিশ্চিত করুন। (লাইন 9) আপনার রেকফিলের প্রয়োজন হবে। (লাইন 10) আপনি ডেটা ট্র্যাক রাখতে ব্যবহার করবেন। (লাইন 11) পাশাপাশি ডেটা ট্র্যাক রাখতে একটি অ্যাডাপ্টার। (লাইন 12) আপনার ডেটা আরও সুরক্ষিত করতে এনক্রিপশনের জন্য একটি পাসওয়ার্ড হ্যাশিং ফাংশন ব্যবহার করা হয়? (লাইন ১৫-১৯) আপনি কেবল অ্যাপের বিকাশের পর্যায়ে ব্যবহার করতে পারবেন এমন রত্ন হবে। তারা যে কোনও ডিবাগিং সমস্যাগুলিতে সহায়তা করবে। একবার এই সমস্ত লিখিত রান বান্ডেল ইনস্টল করা হয়। একবার আপনি আপনার টার্মিনালে বান্ডেল ইনস্টল চালান এটি আপনার সমস্ত রত্নগুলির জন্য একটি জেমফাইল.লক ফাইল তৈরি করবে।

বান্ডিল ইনস্টল

আপনার মূল ডিরেক্টরিতে কনফিগার নামে একটি নতুন ফোল্ডার তৈরি করুন। এই ফোল্ডারে আপনি একটি পরিবেশ.আরবি ফাইল এবং একটি ডাটাবেস.আইএমএল ফাইল সন্নিবেশ করতে চাইবেন। এরপরে একটি কনফিগার.আর ফাইল তৈরি করুন।

এটি আমাদের প্রকল্পের জন্য আমাদের প্রয়োজনীয় সমস্ত কিছু টানবে। আপনি ফাইলটি সফলভাবে তৈরি করেছেন তা পরীক্ষা করতে আপনি আপনার টার্মিনালে রুবি কনফিগারেশন / পরিবেশ.rb টাইপ করতে পারেন। কোনও ত্রুটি না উপস্থিত থাকলে আপনি এটি সফলভাবে তৈরি করেছেন। আপাতত 4-7 লাইন উপেক্ষা করুন। আমরা এখনও পর্যন্ত এটি অর্জন করতে পারেনি!আপনি যদি কখনও এই ত্রুটিটি পান .. এটি ঠিক করার জন্য একটি ডাটাবেস.আইএমএল ফাইল তৈরি করুন।এতে বলা হয়েছে যে আপনি যখন ডেভলপমেন্ট মোডে থাকবেন তখন অ্যাডাপ্টার স্ক্লাইট 3 এবং ডাটাবেস ফাইল db / entries.db ব্যবহার করুন (আপনি কী সংরক্ষণ করতে চান ডাটাবেসটির নাম দিন। আমাদের ক্ষেত্রে এটি এন্ট্রি হবে কারণ এটি একটি জার্নালিং অ্যাপ্লিকেশন) রান রেক ডিবি করুন: তৈরি করুন এবং এটি আপনার জন্য ডিবি ফাইল তৈরি করবে। যা আপনার ডাটাবেস হবে। আপনার তৈরি করা সমস্ত পূর্ববর্তী ফাইলগুলি রয়েছে কিনা তা নিশ্চিত করতে আপনি আপনার টার্মিনালে ls টাইপ করতে পারেন বা বিশেষত ডিবি ফাইলটি দেখতে ls db করতে পারেন।

আপনার মূল ডিরেক্টরিতে একটি রেকফাইল তৈরি করুন। এই ফাইলটিতে আপনাকে আপনার সিনট্রা / অ্যাক্টিভেকর্ড / রেক রত্ন এবং পরিবেশ প্রয়োজন। আপনি নিজের কাস্টম কনসোলটিও স্থাপন করবেন (প্রি ইনস্টল হওয়া নিশ্চিত করে) একটি ডো ব্লক করুন যাতে আপনি আপনার টার্মিনালে আপনার কোডটি পরীক্ষা করতে পারেন। আপনি যখন আপনার টার্মিনালে রেক কনসোলটি চালাবেন এটি স্বয়ংক্রিয়ভাবে আপনাকে একটি পিসি কনসোলে রেখে দেবে। “রেক-টি” চালান এবং আপনি আপনার প্রকল্পের জন্য ব্যবহার করতে পারেন এমন রেকের সমস্ত কাজ দেখতে পাবেন।

রেক টাস্ককনফিগার.আর ফাইলটিতে আপনার পরিবেশের প্রয়োজন হবে, আপনার প্রধান নিয়ামকটি (অ্যাপ্লিকেশনকন্ট্রোলার) চালানো হবে এবং আপনার ওয়েব অ্যাপের জন্য প্রয়োজনীয় অন্য কোনও নিয়ামক (এন্ট্রিস কনট্রোলার) ব্যবহার করুন। আপনি কেবল একটি নিয়ামক চালাতে পারেন। আপনাকে অন্য কোনও নিয়ামক ব্যবহার করতে হবে। এই নিয়ন্ত্রকদের ক্রম হতে হবে। রাক :: মেথোড ওভাররাইডের জন্য

অভিনন্দন! আপনি সফলভাবে আপনার ওয়েব অ্যাপ্লিকেশন অংশ তৈরি করেছেন! আমাদের অ্যাপ্লিকেশনটির এমভিসি বিভাগে যেতে দেয়!

প্রথমে আপনার অ্যাপ নামে একটি ফোল্ডার লাগবে। আপনি এখানে আপনার মডেল, ভিউ এবং নিয়ন্ত্রণকারী (এমভিসি) তৈরি করবেন is

আমি জানি আমি জানি! এখানে অনেক কিছু আছে। শুরুতে আপনার একমাত্র জিনিসটি হওয়া উচিত লাইনগুলি 1,2,10,11,12। লাইন 11 এর সাথে প্রতিস্থাপন করুন “ ওহে বিশ্ব সহায়ক পদ্ধতি হ'ল কাস্টম পদ্ধতি যা আপনি নির্দিষ্ট কোডগুলি করতে আপনার কোডটিতে ব্যবহার করতে পারেন। এই নিয়মগুলিকে আপনি অন্যান্য নিয়ামকগুলিতে কল করতে পারেন যতক্ষণ না অন্যান্য নিয়ামকরা এই অভিভাবক নিয়ামককে উত্তরাধিকার সূত্রে প্রাপ্ত হয় যেখানে সহায়ক পদ্ধতি তৈরি করা হয়।বেসরকারী (সহায়ক হিসাবে ব্যক্তিগত কাজ) এর অধীনে প্যারামগুলি রয়েছে। প্যারামগুলি হ্যাশ (কী-মান জোড়)। এটি আমাদের এনকোডযুক্ত ইউআরএল / এইচটিটিপি অনুরোধগুলির চারপাশে পাস করা ডেটা এনক্যাপুলেট করার একটি উপায়। আমরা এই প্রকল্পের জন্য রাউটিং প্যারামিটারগুলি ব্যবহার করছি।

এখানে অনেক কিছু চলছে তাই আমাকে এটিকে ভেঙে দিন। এটি আপনার পিতামাতার নিয়ামক। আপনার পছন্দ মতো আপনি এটি সেট আপ করতে পারেন তবে এটি আমার জন্য এটি সেট আপ করুন। এই ফোল্ডারের অভ্যন্তরে আমরা এমন রুট তৈরি করছি যা ফাইলগুলি (এম্বেডেড রুবি) রেন্ডার করবে। ব্যবহারকারী ফাইলগুলি ব্যবহারকারীদের ফর্মগুলির মাধ্যমে ব্রাউজারে যা দেখবে সেগুলি ফাইলগুলি হয়। সিনাত্রার জন্য ধন্যবাদ আমাদের নিয়ামকরা রুবি কোডে লিখিত হবে তবে আমাদের এরব ফাইলগুলি স্বয়ংক্রিয়ভাবে এইচটিএমএল ফাইলগুলিতে রূপান্তর করবে যা রুবি কোড এম্বেড করতে পারে। বেশ সুন্দর!

মনে আছে কখন আমি 4-7 লাইন উপেক্ষা করতে বলেছিলাম? আমরা এখন এখানে! আপনি আপনার অ্যাপ্লিকেশন তৈরি শুরু করার সাথে সাথে এই লাইনগুলি যুক্ত করুন। আপনার এগুলির দরকার হয় যাতে আপনি আপনার টার্মিনালে শটগান কল করতে পারেন এবং আপনার ব্রাউজারে তৈরি সমস্ত গুডি দেখতে পারেন! আপনার কেবলমাত্র এখানে আপনার মডেল এবং আপনার নিয়ামক প্রয়োজন (ক্রম)। অ্যাপ্লিকেশন নিয়ামকটিতে আপনি যে মতামত সেট করবেন। রেফারেন্সের জন্য উপরের অ্যাপ্লিকেশন নিয়ামক ফটোতে দেখুন।একটি Signup.erb ফাইল যেভাবে শুরু হতে পারে তার উদাহরণ। (লাইন 2) এখানে আমরা জিনিস তৈরি করব এবং এটি করার জন্য আপনার পদ্ধতিটি দরকার = এটি কাজ করার পরে আপনি নিজের স্থানান্তর তৈরি করতে চান। আপনার টার্মিনালে উপরে কি টাইপ করুন।একবার আপনি এই সক্রিয় রেকর্ডটি সম্পাদন করলে ক্রিয়েট ইউজার নামে এই ডাটাবেস স্থানান্তর তৈরি হবে। স্থানান্তরগুলি যেখানে আপনি নিজের ডাটাবেসে সঞ্চিত ডেটা টেবিল এবং কলাম তৈরি করতে পারবেন। লক্ষ্য করুন পাসওয়ার্ড কলামটি পাসওয়ার্ড_ডিজাস্ট হিসাবে অন্তর্ভুক্ত রয়েছে। আমরা এটি করছি তাই আমরা পাসওয়ার্ড এনক্রিপ্ট করতে bcrypt রত্ন ব্যবহার করতে পারি। আমরা এটি এমনভাবে করি যাতে ব্যবহারকারীর ব্যতীত কেউ ব্যবহারকারীর পাসওয়ার্ড জানতে পারে না। এমনকি বিকাশকারীরাও ব্যবহারকারীর পাসওয়ার্ড জানতে পারবেন না।
rak db: স্থানান্তরিত করা

আপনি টেবিল রান রেক ডিবি সংরক্ষণ করার পরে: আপনার টেবিলটি স্থানান্তর করতে আপনার টার্মিনালে স্থানান্তর করুন। তারপরে আপনার স্কিমা ফাইলটি সেখানে রয়েছে কিনা তা পরীক্ষা করে দেখুন। আপনি যদি আপনার স্কিমা ফাইলটিতে আপনার টেবিলটি না দেখেন তবে এটি সম্ভবত সম্ভবত রেক ডিবি চালানোর আগে আপনার টেক্সট সম্পাদকে আপনার টেবিলটি সংরক্ষণ করেন নি: স্থানান্তরিত করুন। প্রক্রিয়াটি ঠিক করতে পুনরাবৃত্তি করুন।

আপনার অ্যাপ ফোল্ডারে এমন একটি মডেল ফোল্ডার তৈরি করুন যার একটি ইউজারআরবি ফাইল রয়েছে। (লাইন 2) অ্যাক্টিভেকর্ডকে উত্তরাধিকার সূত্রে কীভাবে করা হয় ঠিক তেমনই আমাদের জন্য কিছু পদ্ধতি যুক্ত করবে। আপনার পরিবেশের ফোল্ডারে আপনার নিয়ন্ত্রণকারীদের উপরে এই ফাইলটি লাগাতে ভুলবেন না। রেফারেন্সের জন্য নীচের ছবি (লাইন 4) আপনার টার্মিনালে রেক কনসোল টাইপ করার পরে তা নিশ্চিত করুন যে ব্যবহারকারী কোনও শ্রেণি। আপনি যদি ইউজার.মোথডগুলি টাইপ করেন তবে আপনাকে দেখতে হবে এমন একাধিক পদ্ধতিতে যুক্ত হওয়া উচিত যা অ্যাক্টিভ রেকর্ডটি আগে যুক্ত না করা উচিত। আপনি এটিকেও বৈধতা দিতে চান যে বৈশিষ্ট্যটির ইনপুটগুলি: ব্যবহারকারীর নামটি সত্য এবং এটি অনন্য so তাই কোনও ব্যক্তির একই ব্যবহারকারীর নাম থাকতে পারে না। আপনি যাচাই করতে চাইবেন যে একটি পাসওয়ার্ডও enteredোকানো হয়েছিল। নোটিশ লাইন 3 যেখানে আমরা উল্লেখ করি যে ব্যবহারকারীর রয়েছে। প্রবেশের সাথে একটি has_many সম্পর্ক যা আমাদের এন্ট্রি মডেলের সাথে সংযুক্ত হবে এবং আমাদের এন্ট্রি মডেলে আমরা উল্লেখ করব যে কোনও এন্ট্রি একটি ব্যবহারকারীর সাথে সম্পর্কের সাথে সম্পর্কিত। আপনি আপনার মডেলগুলি তাদের ডিবি স্থানান্তর তৈরি করার পরে তৈরি করেন।

ক্রুড অ্যাকশনগুলির সময় !!

আপনি এখানে আপনার ক্রিয়েটিং, পঠন, আপডেট, ক্রিয়া (সিআরডি) তৈরি করবেন। এই নিয়ামক ব্যবহারকারীর দ্বারা একটি এন্ট্রি তৈরি করতে, তাদের এন্ট্রিগুলি পড়তে, তাদের এন্ট্রিগুলি মুছতে এবং তাদের এন্ট্রিগুলি আপডেট করার জন্য (প্যাচ আপডেটের জন্য) মঞ্জুরি দেয়। এটি সম্ভব কারণ আমাদের মডেলটিতে আমরা বলেছি যে একজন ব্যবহারকারীর_মানি এন্ট্রি রয়েছে এবং এন্ট্রি মডেলটিতে আমরা বলেছি যে একটি এন্ট্রি একটি ব্যবহারকারীর ব্যবহারকারী_আইড ব্যবহার করে যা সক্রিয় রেকর্ড সহ স্বয়ংক্রিয়ভাবে তৈরি হয়। এই নিয়ামকটি erb ফাইলগুলিও সরবরাহ করে।

ডিফ কারেন্ট_উজার
User.find (অধিবেশন [: USER_ID])
শেষ

আমাদের এন্ট্রি নিয়ামক যে উত্তরাধিকার সূত্রে প্রাপ্ত হয় সেই অ্যাপ্লিকেশন নিয়ামকটিতে তৈরি করা এই পদ্ধতির কারণে একজন ব্যবহারকারী কেবল তাদের স্টাফগুলি দেখতে সক্ষম হন।

সিনাত্রার মিডলওয়্যার রয়েছে যা আমাদের প্যাচ, পুট, ডিলেট অনুরোধগুলি ব্যবহার করতে দেয়। এই অনুরোধগুলি আমরা কেবলমাত্র ব্যবহার করতে পারি। একাধিক কন্ট্রোলার সহ একটি অ্যাপ্লিকেশনে, মিডলওয়্যার কার্যকারিতা অ্যাক্সেস করতে র্যাক :: মেথডোভারাইড অবশ্যই সমস্ত নিয়ামকের উপরে রাখা উচিত।উপরে প্রদর্শিত লুকানো ইনপুট ক্ষেত্রটি রাক :: মেথডোভারাইরাইড ব্যবহার করে। এই পদ্ধতিটি =

Ooof। তুমি এখনো সেখানে? যদি তাই…

আমি আশা করি এটি সহায়ক এবং তথ্যবহুল ছিল!