2012-09-18 14 views
17

मैं कोड के इस टुकड़े है "कोई मार्ग [पोस्ट] से मेल खाता है":जब LINK_TO बदलते button_to को

<%= link_to "New User", new_user_path, :class => "button" %><br /> 

जो ठीक काम करता है, लेकिन जब मैं यह करने के लिए बदलने के लिए,

<%= button_to "New User", new_user_path, :class => "button" %><br /> 

मैं इस त्रुटि

कोई मार्ग मैचों [पोस्ट] "/ उपयोगकर्ताओं/नई '

किसी भी मदद की सराहना की जाएगी।

उत्तर

29

यीशु रोड्रिगेज पोस्ट के बारे में सही है और मिलता है, लेकिन यदि आप वास्तव में बटन की जरूरत है आप ओवरराइड बस कर सकते हैं डिफ़ॉल्ट विधि:

<%= button_to "New User", new_user_path, :class => "button", :method => :get %> 
+0

ठीक काम करें! धन्यवाद दोस्त :) –

19

"LINK_TO" एक /उपयोगकर्ताओं/नई का उपयोग कर प्राप्त की तलाश में है।

"button_to" एक /उपयोगकर्ताओं/नईपोस्ट

प्रयोग करने के लिए लग रही है आप का उपयोग कर एक नियंत्रक के लिए मार्गों बनाते हैं:

resources :user 

डिफ़ॉल्ट रूप से, /उपयोगकर्ताओं/नया एक प्राप्त करें और POST तो, दूसरी पंक्ति को कोई रास्ता नहीं मिला है।

यदि आप उस क्रिया को POST पर बदलने की सोच रहे हैं तो मुझे लगता है कि आपको इसके बारे में भूल जाना चाहिए।

2

बटन_to POST पर डिफ़ॉल्ट, और लिंक_to डिफ़ॉल्ट करने के लिए डिफ़ॉल्ट है, यही कारण है कि link_to काम किया।

<%= button_to "New User", new_user_path, :class => "button", :method => :get %> 

आप button_to विकल्प यहाँ के बारे में और अधिक जानकारी प्राप्त कर सकते हैं:: आप प्राप्त उपयोग करने के लिए मजबूर कर सकते हैं button_to http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to

3

गैर-डिफ़ॉल्ट विधि का उपयोग करने के लिए बटन_to को मजबूर करने के बजाय, आप link_to पर एक कक्षा भी भेज सकते हैं।

<%= link_to "New User", new_user_path, :class => "button" %> 
+0

उसमें जोड़ने के लिए, आप इसे एक बटन की तरह "देखो" बनाने के लिए कक्षाएं जोड़ सकते हैं (जैसे उत्तर ऊपर दिखाता है)। मेरे मामले में मैं बूटस्ट्रैप का उपयोग कर रहा हूं और निम्नलिखित '<% = link_to" नया उपयोगकर्ता ", new_user_path,: class =>" btn btn-default "%>' –