2012-11-21 10 views
11

के लिए नया एक्शन जोड़ें मुझे मिल उपयोगकर्ताओं नियंत्रक में इन कार्योंमार्ग

class UsersController < ApplicationController 
    def index #default action 
    ... 
    end 

    def new #default action 
    ... 
    end 

    def another_new 
    ... 
    end 

    def create 
    ... 
    end 

    def another_create 
    ... 
    end 
end 

मैं लिंक :method => :another_create किसी प्रकार से फोन /users/another_new

बनाने के लिए निम्नलिखित मुझे मिल गया /users/another_new करने में सक्षम हो सकता है और करना चाहते हैं config/routes.rb

get '/users/another_new' :to => 'users#another_new' 
resources :users 

मेरा प्रश्न यह है कि 012 जोड़ने का यह सही तरीका हैऔर मैं एक और_क्रेट विधि कैसे जोड़ूं।

उत्तर

24
अपने config/routes.rb फ़ाइल में

इस

resources :users do 
    collection do 
    get 'another_new' 
    post 'another_create' 
    end 
end 

इसके अलावा अवधारणाओं की स्पष्ट समझ के लिए एक नज़र HERE है।

आशा यह आपके दोस्त :)

+0

दोस्त आप एक lifesaver हैं! –

3

routes.rb

match "https://stackoverflow.com/users/another_new " => "users#another_new", :as => 'another_new' 

में यह कोशिश तो आप

link_to "MyUrl", another_new_path 

इस काम करना चाहिए कर सकते हैं। सौभाग्य।

+0

routes.rb के अंदर लाइनों का क्रम बहुत महत्वपूर्ण है। कस्टम पथ (वस्तुओं के भीतर) संसाधनों के ऊपर और पहले प्रकट होना चाहिए: ऑब्जेक्ट परिभाषा। –

1

भी ध्यान रखें कि आप :method => :another_new नहीं होना चाहिए मदद करता है। :method के लिए आपके विकल्प :get, :put, :post, और :delete हैं, और आपके द्वारा उपयोग किए जाने वाले प्रत्येक व्यक्ति से मेल खाना चाहिए कि आपने मार्गों में कार्रवाई को कैसे परिभाषित किया है।