2011-06-09 12 views
5

मेरे पास दो अलग-अलग सहायक फ़ाइलें हैं (photos_helper & comments_helper) w/जिसमें actions_for नामक विधि है। मैं स्पष्ट रूप से कॉल कर सकता हूं कि मुझे कौन सी सहायक विधि की आवश्यकता है? मुझे पता है कि मैं उनमें से एक का नाम बदल सकता हूं लेकिन मैं उन्हें वही रखना पसंद करूंगा। मैंने PhotosHelper::actions_for की कोशिश की लेकिन यह काम नहीं लग रहा है।एकाधिक रेल सहायक उपकरण w/वही विधि का नाम

उत्तर

7

रेल 3 में सभी सहायक हमेशा होते हैं (रेल 3.1 में एक पैच चुनिंदा रूप से मददगारों को फिर से अनुमति देने के लिए मौजूद है) शामिल हैं। क्या पर्दे के पीछे क्या हो रहा है:

class YourView 
    include ApplicationHelper 
    include UserHelper 
    include ProjectHelper 

    ... 
end 

तो आदेश रेल के आधार पर उन्हें भी शामिल है, अपने actions_for से किसी भी विधि का उपयोग किया जाएगा। आप उनमें से एक को स्पष्ट रूप से चुनने का कोई तरीका नहीं है।

यदि आपको स्पष्ट रूप से ProjectHelper.action_for पर कॉल करना होगा, तो आप अपने तरीकों को project_action_for - सरलतम समाधान भी नाम दे सकते हैं।

6

उन दोनों को बनाओ एक Class Method

module LoginsHelper 
    def self.your_method_name 
    "LoginsHelper" 
    end 
end 

और

module UsersHelper 
    def self.your_method_name 
    "UsersHelper" 
    end 
end 
दृश्य में

फिर

LoginsHelper.your_method_name #Gives 'LoginsHelper' 

और

UsersHelper.your_method_name #Gives 'UsersHelper' 
+2

हालांकि यह किसी अन्य "नियमित" एक्शन व्यू :: हेल्पर विधियों जैसे लिंक_to, _url, image_tag तक पहुंच की इजाजत नहीं देता है। –

संबंधित मुद्दे