2011-01-20 9 views
17

मैं एक HTML फॉर्म का उपयोग किए बिना संसाधन को अपडेट करने के लिए एक लिंक चाहता हूं।link_to अपडेट (फॉर्म के बिना)

मार्गों:

resources :users do 
resource :profile, :controller=>"profiles" 
resources :friends 
end  

रैक मार्गों:
<:

user_friend GET /users/:user_id/friends/:id(.:format){:action=>"show", :controller=>"friends"} 
      PUT /users/:user_id/friends/:id(.:format){:action=>"update", :controller=>"friends"} 

मैं एक सरल लिंक, कुछ इस तरह से एक दोस्त को अद्यतन करने के पुट उपयोग करना चाहते हैं % = link_to "दोस्त के रूप में जोड़ें", user_friend_path (current_user,: method => 'put')%>

लेकिन जैसे ही रेल उस लिंक को पूरा करते हैं, वह शो एक्शन में जाने की कोशिश करता है।
सवाल यह है कि ऐसा करने का सही लिंक क्या है?

+0

क्या आपने एक्शन पैरामीटर जोड़ने का प्रयास किया है? <% = link_to "दोस्त के रूप में जोड़ें", user_friend_path (current_user,: method => 'put,: action =>: update')%> और यदि आप कोई अद्यतन पैरामीटर पास नहीं करते हैं तो आपको विधि विधि क्यों चाहिए? –

उत्तर

31
link_to "Add as friend", user_friend_path(current_user, @friend), :method=> :put 

विशेषता 'डेटा-विधि' को 'डाल' सेट, बारी में रेल जावास्क्रिप्ट पर्दे के पीछे एक रूप में बदल गया और द्वारा उठाया हो जाएगा, जिसके साथ एक लिंक सम्मिलित जाएगा ... मुझे लगता है कि है कि आपको क्या चाहिए।

आपको निम्न का उपयोग करने पर विचार करना चाहिए: क्योंकि आप दो उपयोगकर्ताओं के बीच एक नया लिंक बना रहे हैं, इसे अपडेट नहीं करते हैं, ऐसा लगता है।

+0

मेरे पास उस दृश्य में ऑब्जेक्ट @ मित्र नहीं है, मेरे पास बस इसकी आईडी है, यह काम नहीं करती है। – Joe

+0

मैंने दोस्त के बारे में क्या हल किया है लेकिन यह अभी भी काम नहीं करता है: अपना कोड लिखना यह मुझे एक रूटिंग त्रुटि रिपोर्ट करता है: कोई मार्ग मिलान नहीं होता है {: action => "show",: नियंत्रक => "दोस्त",: user_id => # <उपयोगकर्ता आईडी: 101} – Joe

+0

क्या आप रेल 3 का उपयोग कर रहे हैं? मैंने jquery और jquery-rails का उपयोग करके अपनी खुद की परियोजनाओं में से एक में कोशिश की और यह काम किया। कोशिश करें: एक स्ट्रिंग (मेरी गलती) के बजाय प्रतीक के रूप में डालें। –

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