से नया रिकॉर्ड कैसे बनाते हैं, मैं एक 'टैग' कार्यक्षमता बनाने की कोशिश कर रहा हूं जो उपयोगकर्ता को उन वस्तुओं को "टैग" करने की अनुमति देता है जिनमें वे रुचि रखते हैं। यहाँ मेरी मॉडलरेल 3 - आप link_to
class tag
belongs_to :user
belongs_to :item
end
इसी डीबी तालिका आवश्यक :user_id
और :item_id
क्षेत्रों है।
:items
की सूची में मुझे प्रत्येक :item
के बगल में एक लिंक चाहिए जो उपयोगकर्ता को :item
टैग करने की अनुमति देता है। चूंकि मुझे :user_id
और :item_id
पता है, इसलिए मैं एक नया :tag
रिकॉर्ड बनाना चाहता हूं, आईडी फ़ील्ड सेट कर सकता हूं, और रिकॉर्ड सहेज सकता हूं - सभी उपयोगकर्ता हस्तक्षेप के बिना। मैं link_to
के लिए निम्न कॉल करने की कोशिश की, लेकिन कोई रिकॉर्ड डेटाबेस में सहेजा गया है:
<%= link_to 'Tag it!', {:controller => "tracks",
:method => :post,
:action => "create"},
:user_id => current_user.id,
:item_id => item.id %>
(इस कोड को एक के भीतर है:। @item.each do |item|
बयान, इसलिए item.id मान्य है)
यह link_to
कॉल बनाता है यह यूआरएल:
http://localhost:3000/tags?method=post&tag_id=7&user_id=1
जो डेटाबेस में Tag
रिकॉर्ड नहीं बनाता है। यहाँ tags_controller
def create
@tag = Tag.new
@tag.user_id = params[:user_id]
@tag.tag_id = params[:tag_id]
@tag.save
end
मैं बना सकते हैं और एक नया टैग रिकॉर्ड को बचाने के लिए LINK_TO कैसे प्राप्त कर सकते हैं में अपने :create
कार्रवाई है?
धन्यवाद! यह आपके फिक्स के साथ बढ़िया काम करता है। आपके उत्तर में link_to हस्ताक्षर दिखाते हुए वास्तव में मुझे यह समझने में मदद मिली कि क्या हो रहा था। बहुत सराहना की। –
बस एक त्वरित टिप्पणी। Url_options हैश में नियंत्रक कुंजी का मान "आइटम" नहीं होना चाहिए "आइटम"। लिंक प्रदर्शित करने का प्रयास करते समय यह आपको एक्शनकंट्रोलर रूटिंग त्रुटि देगा। – icantbecool
@dexter, क्या होता है यदि लिंक ऐप के बाहर है, जैसे ईमेल में, उदाहरण के लिए? मेरा उपयोग मामला आरएसवीपी के लिए है। मैं सीधे ईमेल लिंक से एक नया आरएसवीपी बनाना चाहता हूं, लेकिन मैं रीस्टफुल रहना चाहता हूं। – Mohamad