সহায়ক এবং সহায়তাকারী_মোথার কী করে?


201

helper_method সোজা: এটি নিয়ন্ত্রণকারীর কয়েকটি বা সমস্ত পদ্ধতি দর্শনের জন্য উপলব্ধ করে তোলে।

কী helper? এটি কি অন্য উপায়ে, অর্থাত্‍ এটি কোনও ফাইল বা মডিউলে সহায়তার পদ্ধতি আমদানি করে? (সম্ভবত নাম helperএবং helper_methodএকইরকম। তারা পরিবর্তে হতে পারে share_methods_with_viewএবং import_methods_from_view)

উল্লেখ

উত্তর:


295

পদ্ধতিটি helper_methodহল নিয়ামককে সংজ্ঞায়িত কিছু পদ্ধতি স্পষ্টভাবে ভাগ করে নেওয়া যাতে দেখার জন্য উপলব্ধ হয়। এটি আপনার নিয়ামক এবং সাহায্যকারী / দৃষ্টিভঙ্গি উভয়ের কাছ থেকে অ্যাক্সেস করতে হবে এমন কোনও পদ্ধতির জন্য ব্যবহার করা হয় (নিয়ামকগুলিতে মানক সহায়তার পদ্ধতিগুলি উপলভ্য নয়)। যেমন সাধারণ ব্যবহারের কেস:

#application_controller.rb
def current_user
  @current_user ||= User.find_by_id!(session[:user_id])
end
helper_method :current_user

অন্যদিকে helperপদ্ধতিটি হ'ল নিয়ামক (এবং এটি উত্তরাধিকার সূত্রে প্রাপ্ত নিয়ামকগণ) সরবরাহিত ভিউগুলিতে সম্পূর্ণ সহায়ককে আমদানি করার জন্য। এর অর্থ কী করছে

# application_controller.rb
helper :all

রেলের জন্য> 3.1

# application.rb
config.action_controller.include_all_helpers = true
# This is the default anyway, but worth knowing how to turn it off

সমস্ত সাহায্যকারী মডিউলগুলি সমস্ত দর্শনে উপলভ্য করে (অন্তত প্রয়োগ_কন্ট্রোলারের উত্তরাধিকার সূত্রে প্রাপ্ত সমস্ত নিয়ন্ত্রকের জন্য।

# home_controller.rb
helper UserHelper

ইউজারহেল্পার পদ্ধতিগুলি হোম নিয়ামকের ক্রিয়াকলাপের জন্য দর্শনগুলির জন্য উপলব্ধ করে makes এটি করার সমতুল্য:

# HomeHelper
include UserHelper

20
রেলগুলি> = 3.1 এ, অ্যাপ্লিকেশন নিয়ামকটিতে 'সহায়তাকারী: সমস্ত' অ্যাপ্লিকেশন.আরবিতে 'অন্তর্ভুক্ত_সর্বস্ব_হেল্পার্স' কনফিগারেশন সেটিংস দ্বারা প্রতিস্থাপিত হয়েছে। স্ট্যাকওভারফ্লো . com/ প্রশ্নগুলি / ১১11৯৮65৫ দেখুন ।
জান হেটিচ

@ জেরেমি আমি জানি এই পোস্টটি পুরানো, তবে ভাল বলেছেন। আমাকে সাহায্য করে ছিল!
রায়ান রেবো

3
কিছু সাধারণ সিনট্যাকটিকাল চিনির বাইরে "সহায়ক" এবং "অন্তর্ভুক্ত" ব্যবহারের মধ্যে পার্থক্য রয়েছে। "সহায়ক" নামযুক্ত মডিউলটিকে দর্শন, এবং কেবল দেখার জন্য উপলব্ধ করে। "অন্তর্ভুক্ত" নামযুক্ত মডিউলটিকে দর্শন এবং নিয়ামকদের কাছে উপলব্ধ করে। উভয়ই উত্তরাধিকারসূত্রে নিয়ন্ত্রক এবং তাদের মতামতগুলিকে প্রভাবিত করে।
রিচার্ড_জি

@R_G আপনি যে লক্ষ্য, গত স্নিপেট কি include UserHelperহয় HomeHelper, মডিউল পরিবর্তে নিয়ামক কি? এএফআইএকে, কন্ট্রোলারের সাহায্যকারী মডিউল সহ কেবল পদ্ধতিগুলি দর্শনগুলির সাথে ভাগ করে নেবে না।
ফ্র্যাঙ্কলিন ইউ

কন্ট্রোলারের সাহায্যকারী মডিউল সহ @ ফ্র্যাঙ্কলিনইউ প্রকৃতপক্ষে দর্শনের সাথে পদ্ধতিগুলি ভাগ করবে, সুতরাং আর_জি সঠিক correct
ম্যাগনে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.