yöntem helper_method
açıkça görünümü için hazır hale getirmek üzere denetleyici tanımlanan bazı yöntemler paylaşmaktır. Bu, her iki denetleyiciden ve yardımcılardan/görünümlerden erişmeniz gereken herhangi bir yöntem için kullanılır (standart yardımcı yöntemler, denetleyicilerinde mevcut değildir). Örneğin. Genel bir kullanım durumu:
#application_controller.rb
def current_user
@current_user ||= User.find_by_id!(session[:user_id])
end
helper_method :current_user
diğer yandan helper
yöntem olup, kontrol birimi tarafından temin görüşlerine tüm yardımcı aktarmak için (ve bu denetleyicileri kalıtımsal). Bunun anlamı Raylar> 3,1
# application.rb
config.action_controller.include_all_helpers = true
# This is the default anyway, but worth knowing how to turn it off
için
# application_controller.rb
helper :all
en azından tüm kontrolörler application_controller devralan için tüm görünümlerde (mevcut tüm yardımcı modülleri yapar yapıyor.
# home_controller.rb
helper UserHelper
yapar Ana denetleyicinin eylemleri için görünümler için UserHelper yöntemleri kullanılabilir: Bu, eşdeğerdir:
Raylar> = 3.
# HomeHelper
include UserHelper
, 'yardımcı: Tüm' uygulaması denetleyicisi application.rb içinde 'include_all_helpers' yapılandırma ayarı ile değiştirilir. Http://stackoverflow.com/questions/1179865/ sayfasına bakın. –
@Jeremy Bu yazının eski olduğunu biliyorum ama iyi dedim. Bana yardımcı oldu! –
Bazı basit sözdizimsel şekerlerin ötesinde "helper" ve "include" kullanımı arasında bir fark vardır. "helper", adlandırılmış modülü görünümlere ve yalnızca görünümlere sunar. "include", adlandırılmış modülü görünümler ve denetleyiciler için kullanılabilir hale getirir. Her ikisi de devralınan denetleyicileri ve görünümlerini etkiler. –