কম্পিউটার

ডিভাইজ এক্সপ্লোরিং, পার্ট 2

পরিচয়

টিউটোরিয়ালের প্রথম অংশে, আমরা শিখেছি কীভাবে Devise ইনস্টল করতে হয় এবং আমাদের Rails অ্যাপ্লিকেশনে এটি সেট আপ করতে হয়। এই অংশে, আমরা দেখব কিভাবে DeviseInvitable সংহত করা যায়।

DeviseInvitable হল একটি এক্সটেনশন যা Devise এর সাথে কাজ করে। আপনার অ্যাপ্লিকেশনে DeviseInvitable এর মাধ্যমে, আপনার ব্যবহারকারীরা তাদের বন্ধুদের ইমেলের মাধ্যমে আমন্ত্রণ জানাতে পারে। আপনি যদি একটি সহযোগিতা অ্যাপ তৈরি করেন তবে এটি আপনার অ্যাপ্লিকেশনে অন্তর্ভুক্ত করার জন্য একটি দুর্দান্ত বৈশিষ্ট্য৷

DeviceInvitable সেট আপ করা হচ্ছে

আপনার Gemfile খুলুন এবং মণি যোগ করুন:

#Gemfile...gem 'devise_invitable'

bundle install ইনস্টল করতে কমান্ডটি চালান .

Devise কনফিগারেশন ফাইলে DeviseInvitable এর কনফিগারেশন বিকল্প যোগ করতে জেনারেটর কমান্ড চালান৷

রেলগুলি তৈরি করে devise_invitable:install

আপনি config/initializers/devise.rb চেক করে নতুন পরিবর্তন দেখতে পারেন আপনার পাঠ্য সম্পাদকের সাথে৷

এর পরে, আমাদের User-এ DeviseInvitable যোগ করা যাক মডেল।

রেলগুলি devise_invitable User তৈরি করে

এটি :invitable যোগ করবে আপনার মডেলে পতাকাঙ্কিত করুন, এইভাবে আপনার ব্যবহারকারীর মডেলটি এরকম দেখাবে:

#app/models/user.rbclass ব্যবহারকারী  

উপরের কমান্ডটি চালানোর ফলে একটি মাইগ্রেশন ফাইলও তৈরি হয়েছে যা আমার নীচের মত দেখাচ্ছে:

class DeviseInvitableAddToUsers  

এখন rake db:migrate চালিয়ে আপনার ডাটাবেস স্থানান্তর করুন .

DeviceInvitable-এর জন্য কন্ট্রোলার কনফিগার করা

একটি আমন্ত্রণ পাঠানোর সময় কিছু প্যারামিটার পাস করার জন্য DeviseInvitable প্রয়োজন। এটি কাজ করার জন্য, আমাদের প্রয়োজনীয় প্যারামিটারটি সাদা তালিকাভুক্ত করতে হবে যা ব্যবহার করা হবে। আপনার টেক্সট এডিটর ব্যবহার করে, app/controllers/application_controller.rb-এ নেভিগেট করুন এবং আমার নীচে যা আছে আপনার মত দেখান:

#app/controllers/application_controller.rbclass ApplicationController  

উপরের থেকে, আপনি দেখতে পাচ্ছেন যে :email DeviseInvitable-এর জন্য সাদাতালিকাভুক্ত করা হয়েছে৷

এখন দেখা যাক আমাদের কনসোলের মাধ্যমে কি আছে। আপনার টার্মিনালে, rails console চালান এবং নীচে আপনার যা আছে তা লিখুন৷

[1] pry(main)> User.invite!(:email => "johndoe@example.com")

এটি এমন আউটপুট তৈরি করবে যা আমার নীচের মত দেখায়, যদিও পার্থক্য থাকবে।

[2] pry(main)> User Load (78.3ms) "ব্যবহারকারী" নির্বাচন করুন। "ব্যবহারকারী"।"আইডি" ASC সীমা 1 [["ইমেল", "johndoe@example.com"]] ব্যবহারকারীর লোড (0.2ms) "ব্যবহারকারী" নির্বাচন করুন।* "ব্যবহারকারীরা" কোথায় "ব্যবহারকারী"। "=? ORDER BY "users"।"id" ASC LIMIT 1 [["invitation_token", "658da470d5fcbb2275f30bc1fb66f5771b889cec2f1e56f536319d2fd1ef4a92"]], "SQL 536319d2fd1ef4a92"]] (0 IN_pts-এ এসকিউএল ট্রান্সমিশন) (0 IN_pts-এ মেইল ​​করা হয়েছে) (0 IN_pts-এ মেইল ​​করা হয়েছে। ", "invitation_created_at", "invitation_sent_at", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?, ?) [["email", "johndoe@example.com"], [ "encrypted_password", "$2a$11$0sLfqvfFDsebcmcQTUXzlOuqNIooL5z8niXeza8OUwNK3gZY/iRum"], ["invitation_token", "658da470d5fcbb2275f30bc1fb66f5771b889cec2f1e56f536319d2fd1ef4a92"], ["invitation_created_at", "2016-10-07 07:41:51.254047"], ["invitation_sent_at", " 2016-10-07 07:41:51.254047"], ["created_at", "2016-10-07 07:41:51.255700"], ["আপডেট করা_এটি", "2016-10-07 07:41:51]"2016-10-07 ] (220.5ms) লেনদেন প্রতিশ্রুতিবদ্ধ /home/kinsomicrote/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/devise_invitable-1.7.0/app/views/devise/mailer/invitation_instructions. html.erb (2.5ms) রেন্ডার করা /home/kinsomicrote/.rbenv/versi ons/2.3.0/lib/ruby/gems/2.3.0/gems/devise_invitable-1.7.0/app/views/devise/mailer/invitation_instructions.text.erb (88.0ms)Devise::Mailer#invitation_instructions:প্রক্রিয়াকৃত আউটবাউন্ড 247.1ms-এ মেল পাঠান johndoe@example.com (74.3ms)তারিখ:শুক্র, 07 অক্টোবর 2016 08:41:51 +0100থেকে:please-change-me-at-config-initializers-devise@example.comউত্তর-To:please-change-me-at-config-initializers-devise@example.comএতে:johndoe@example.comমেসেজ-আইডি:<57f751bfce8d6_18022ac6c272b12840661@kinsomicrote-X553MA.mail>বিষয়ক নির্দেশনা:মাল্টিমিম-পার্টিশন/বিষয়ক নির্দেশিকা; boundary="--==_mimepart_57f751bfcc725_18022ac6c272b12840524"; charset=UTF-8কন্টেন্ট-ট্রান্সফার-এনকোডিং:7bit----==_mimepart_57f751bfcc725_18022ac6c272b12840524সামগ্রী-প্রকার:টেক্সট/প্লেইন; charset=UTF-8Content-Transfer-Encoding:7bitHello johndoe@example.com কেউ আপনাকে https://localhost:3000/ এ আমন্ত্রণ জানিয়েছে, আপনি নীচের লিঙ্কের মাধ্যমে এটি গ্রহণ করতে পারেন। https://localhost:3000/users/invitation/ accept?invitation_token=xmW9uRfyafptmeFMmFByআপনি যদি আমন্ত্রণটি গ্রহণ করতে না চান, তাহলে অনুগ্রহ করে এই ইমেলটি উপেক্ষা করুন৷ যতক্ষণ না আপনি উপরের লিঙ্কটি অ্যাক্সেস করেন এবং আপনার পাসওয়ার্ড সেট না করেন ততক্ষণ পর্যন্ত আপনার অ্যাকাউন্ট তৈরি করা হবে না৷ html; charset=UTF-8Content-Transfer-Encoding:7bit

Hello johndoe@example.com

কেউ আপনাকে https://localhost:3000/-এ আমন্ত্রণ জানিয়েছে, আপনি নীচের লিঙ্কের মাধ্যমে এটি গ্রহণ করতে পারেন।

আমন্ত্রণ গ্রহণ করুন

আপনি যদি না চান আমন্ত্রণ গ্রহণ করতে, অনুগ্রহ করে এই ইমেলটি উপেক্ষা করুন৷
আপনি উপরের লিঙ্কটি অ্যাক্সেস না করা পর্যন্ত এবং আপনার পাসওয়ার্ড সেট না করা পর্যন্ত আপনার অ্যাকাউন্ট তৈরি করা হবে না৷ :0x00558d875fa798 id:4, email:"johndoe@example.com", encrypted_password:"$2a$11$0sLfqvfFDsebcmcQTUXzlOuqNIooL5z8niXeza8OUwNK3gZY/iRum", reset_password_token:nil, reset_password_sent_at:nil, remember_created_at:nil, sign_in_count:0, current_sign_in_at:nil, last_sign_in_at:nil, current_sign_in_ip:nil, last_sign_in_ip:nil, created_at:শুক্র, 07 অক্টোবর 2016 07:41:51 UTC +00:00, আপডেট_at:শুক্র, 07 অক্টোবর 2016 07:41:51 UTC, ব্যবহারকারীর নাম +00:আমন্ত্রণ_টোকেন:"658da470 d5fcbb2275f30bc1fb66f5771b889cec2f1e56f536319d2fd1ef4a92", invitation_created_at:Fri, 07 Oct 2016 07:41:51 UTC +00:00, invitation_sent_at:Fri, 07 Oct 2016 07:41:51 UTC +00:00, invitation_accepted_at:nil, invitation_limit:nil, invited_by_id:nil , আমন্ত্রিত_by_type:nil, invitations_count:0>[3] pry(main)>

এটি পরিকল্পিত হিসাবে কাজ করেছে৷

আপনি চান না যে আমাদের ব্যবহারকারীরা কমান্ড লাইনের মাধ্যমে আমন্ত্রণ পাঠান, তাই সামনের প্রান্তে কাজ করার জন্য আমরা DeviseInvitable সেট আপ করা গুরুত্বপূর্ণ। এটা করা খুবই সহজ; DeviseInvitable-এর জন্য ভিউ তৈরি করতে জেনারেটর কমান্ড চালান।

rails generate devise_invitable:views users

আপনাকে আপনার অ্যাপ্লিকেশনের কোথাও একটি লিঙ্ক যোগ করতে হবে যা আমন্ত্রণ পাঠানোর জন্য পৃষ্ঠায় নির্দেশ করে (app/views/users/invitations/new.html.erb )।

এই অ্যাপ্লিকেশনটির জন্য, আপনি এগিয়ে যেতে পারেন এবং আপনার নেভিগেশন ফাইলে লিঙ্কটি যোগ করতে পারেন। এখানে আমি কিভাবে আমার কাজ করেছি:

#app/views/shared/_navigation.html.erb

DeviseInvitable দ্বারা উপলব্ধ রুটগুলি দেখতে, rake routes | invit . এখানে আউটপুট কেমন হবে।

ক্যান্সেল_ব্যবহারকারী_নিবন্ধন পান /users/cancel(.:format) devise_invitable/registrations#cancel user_registration POST /users(.:format) devise_invitable/registrations#create new_user_registration GET /users/sign_up(. পান /users/edit(.:format) devise_invitable/registrations#edit PATCH /users(.:format) devise_invitable/registrations#update PUT /users(.:format) devise_invitable/registrations#update DELETE/users(.:devisable) /registrations#destroy accept_user_invitation GET /users/invitation/accept(.:format) devise/invitations#edit remove_user_invitation পান ) তৈরি/আমন্ত্রণ#cr নতুন_ব্যবহারকারীর_আমন্ত্রণ গ্রহণ করুন /প্রে> 

এই মুহুর্তে আমাদের কি আছে তা দেখা যাক। আপনার সার্ভার শুরু করতে কমান্ড চালান; rails server .

আপনার ব্রাউজারকে https://localhost:3000/users/invitation/new-এ নির্দেশ করুন . প্রদর্শিত ফর্মে একটি ইমেল ঠিকানা লিখুন এবং বোতামে ক্লিক করুন। যে কাজ করা উচিত! আপনি যদি আপনার সার্ভারের লগগুলিতে যান, আপনি একটি আউটপুট দেখতে পাবেন যা আপনি আমন্ত্রণ পাঠানোর সময় তৈরি হয়েছিল৷ আউটপুটে, আপনি আমন্ত্রণ গ্রহণ করার জন্য একটি লিঙ্ক দেখতে পাবেন।

আপনি আমার সাথে একমত হবেন যে আপনি যদি আপনার ব্রাউজারে পাঠানো ইমেলটি দেখতে পারেন তবে এটি আরও ভাল হবে। আসুন দেখি কিভাবে কাজটি করা যায়।

লেটার_ওপেনার একীভূত করা

লেটার ওপেনার আপনাকে আপনার ডিফল্ট ব্রাউজারে ইমেলগুলির পূর্বরূপ দেখতে দেয়। এটির সাথে, ডেভেলপমেন্ট এনভায়রনমেন্টে কাজ করার সময় আপনাকে একটি মেল ডেলিভারি সিস্টেম সেট আপ করতে হবে না।

আপনার জেমফাইল খুলুন এবং নীচের মণি যোগ করুন:

gem 'letter_opener'

bundle install চালান .

আপনার পাঠ্য সম্পাদক ব্যবহার করে, config/environments/development.rb-এ নেভিগেট করুন এবং নীচের লাইন যোগ করুন।

#config/environments/development.rb... config.action_mailer.delivery_method =:letter_openerend

আপনার রেল সার্ভার পুনরায় চালু করুন. এখন আপনার ব্রাউজারটিকে https://localhost:3000/users/invitation/new-এ নির্দেশ করুন . প্রদর্শিত ফর্মটি পূরণ করুন এবং জমা দিন। এইবার, আমন্ত্রণ ইমেল সহ একটি নতুন পৃষ্ঠা পপ আপ হয়৷

ডিফল্ট সাইন ইন এবং সাইন আউট রুট পরিবর্তন করুন

ডিফল্টরূপে, sign_in এবং sign_out ডিভাইস ব্যবহার করার সময় রুটগুলি এইরকম দেখায়:

sign_in: https://localhost:3000/users/sign_in

sign_out: https://localhost:3000/users/sign_out

এটি পরিবর্তন করতে, config/routes.rb এ যান এবং নিম্নলিখিত যোগ করুন:

#config/routes.rb as :user do get 'signin' => 'design/sessions#new' post 'signin' => 'device/sessions#create' delete 'signout' => 'device/sessions# ধ্বংস' শেষ

আপনি আপনার ব্রাউজারকে https://localhost:3000/signin-এ নির্দেশ করতে পারেন .

উপসংহার

এখন আপনি জানেন কিভাবে DeviseInvitable ব্যবহার করতে হয়। আপনি letter_opener মণি সম্পর্কেও শিখেছেন . আপনি ডিভাইসের সাথে অনেক কিছু করতে পারেন, তাই আরও জানতে উইকি দেখুন। আমার সাথে থাকার জন্য ধন্যবাদ.


No
  1. MongoDB টিপস:পার্ট 2

  2. PostgreSQL প্রশাসন, পার্ট 1

  3. রুবি ইন্টারনাল:রুবি অবজেক্টের মেমরি লেআউট অন্বেষণ করা

  4. এমআরআই সোর্স কোড অন্বেষণ