के लिए रेल 4 में टोकन के साथ एक अद्वितीय URL जनरेट मैं एक 'प्रतिक्रिया' मॉडल जिससे एक उपयोगकर्ता उसकी/उसके काम के प्रदर्शन पर प्रतिक्रिया के लिए अनुरोध करने में सक्षम होना चाहिए है। मैंने एक नया फीडबैक अनुरोध बनाने के लिए बुनियादी दस्तावेज लिखे हैं, और प्रदाता को अनुरोध भेजने के लिए मेलर (व्यक्ति जो फीडबैक के साथ जवाब देगा)।एक बाहरी रूप प्रतिक्रिया
मैं सलाह समुदाय से लागू करने पर चाहते हैं निम्नलिखित:
- एक बार एक नया प्रतिक्रिया अनुरोध बनाई गई है, ई-मेल भेज दिया जाता है कि एक फार्म जहां प्रदाता अपने इनपुट कर सकते हैं करने के लिए एक लिंक शामिल करना चाहिए उपयोगकर्ताओं के प्रदर्शन पर प्रतिक्रिया।
- प्रतिक्रिया प्रदाता लॉग-इन या साइन-अप किसी भी तरह से (आवेदन करने के लिए पूरी तरह से अर्थात बाह्य) के लिए आवश्यक नहीं किया जाना चाहिए।
- एक बार प्रस्तुत की, प्रदाता से प्रतिक्रिया प्रणाली में कब्जा किया जाना चाहिए।
अब, मैं इसे लागू करने के लिए निम्न विचार है, लेकिन यकीन है कि अगर यह सबसे अच्छा तरीका है आगे बढ़ने के लिए है नहीं कर रहा हूँ:
- एक नया प्रतिक्रिया अनुरोध के निर्माण पर एक अद्वितीय टोकन जेनरेट करें । कुछ ऐसा: Best way to create unique token in Rails?।
- टोकन को फिर 'फीडबैक' तालिका में दर्ज किया जाना चाहिए।
- मेलर तो चर उत्पन्न करनी चाहिए (जैसे @url) जो अन्य नियंत्रक के लिए लिंक उत्पन्न करता है (मान लीजिए कि 'external_feedback' और कार्रवाई जो लॉग-इन (जैसे कोई before_filter की आवश्यकता नहीं है चलो:। Authenticate_user वसीयत से)
- यूआरएल यही कारण है कि विशिष्ट प्रतिक्रिया अनुरोध के लिए टोकन के माध्यम से एक पैरामीटर शामिल करना चाहिए।
- कार्रवाई की प्रतिक्रिया के अनुरोध और एक रूप simple_form साथ उत्पन्न अद्यतन करने के लिए होना चाहिए।
पूरी बात एक प्रश्नावली का जवाब देने के समान है या सर्वेक्षण (जैसे सर्वेक्षण बंदर)
कुछ शोध के बाद मेरा मानना है कि फ्रेंडली आईडी मणि यहां उपयोगी हो सकता है। मैं http://guides.rubyonrails.org/form_helpers.html की धारा 8 भी पढ़ रहा था और शायद मुझे औपचारिक अर्थ में एक प्रामाणिकता_टोकन को लागू करने की आवश्यकता है। मैं वास्तव में क्या देख रहा हूं:
- क्या उपरोक्त दृष्टिकोण यह करने के लिए आम तौर पर सही तरीका है?
- यदि हां, तो आप इसे कैसे कार्यान्वित करेंगे इस पर कोई विशेष जानकारी (दोस्ताना आईडी के साथ या उसके बिना)?
- क्या आप ऐसे यूआरएल/टोकन उत्पन्न करने के लिए मौजूद किसी भी रत्न के बारे में जानते हैं?
अग्रिम धन्यवाद। मैं अब मॉडल और नियंत्रक विवरण की वर्तमान स्थिति के शामिल कर रहा हूँ:
feedback.rb
# == Schema Information
#
# Table name: feedbacks
#
# id :integer not null, primary key
# user_id :integer
# p_first_name :string(255)
# p_last_name :string(255)
# p_email :string(255)
# goal_id :integer
# u_comment :text
# p_comment :text
# created_at :datetime
# updated_at :datetime
#
class Feedback < ActiveRecord::Base
belongs_to :user
belongs_to :goal
has_many :feedback_attributes
validates_presence_of :p_first_name, :p_last_name, :p_email, :goal_id
end
और ये मेरे मेलर है:
class FeedbackMailer < ActionMailer::Base
def feedback_request(user, feedback)
@user = user
@feedback = feedback
@url = 'http://thisistheexampleurlforfeedback'
mail(to: @feedback.p_email, subject: "#{@user.first_name} #{@user.last_name} has requested your feedback", from: @user.email)
end
end
ग्रेट प्रतिक्रिया, धन्यवाद डेविड। मेरे लिए सही काम किया। – turkeyman84
क्या यह टोकन पीढ़ी तर्क प्राथमिक कुंजी जैसे अद्वितीय टोकन बनाए रखेगा? या यह टोकन डुप्लिकेट करता है? उदाहरण के लिए: कहें कि यह यादृच्छिक रूप से एक टोकन "123" उत्पन्न हुआ है। तो क्या कोई मौका है कि यह यादृच्छिक रूप से फिर से "123" उत्पन्न करेगा? – John
@ जॉन इस बात पर निर्भर करता है कि आपकी वेबसाइट कितनी ट्रैफ़िक प्राप्त करती है, यह टोकन पीढ़ी तर्क एक डुप्लिकेट टोकन उत्पन्न कर सकता है जितनी बार एक बार क्वाड्रिलियन बार में। टोकन पर एक अद्वितीय इंडेक्स डालने के लिए यह अधिक सुरक्षित होगा और 'शुरू करें; self.token = SecureRandom.hex [0,10] .upcase; बचाव ActiveRecord :: RecordNotUnique; पुन: प्रयास; end' –