के एक परिदृश्य लेते हैं:रेलवे में समय-समय पर मूल्य लाने/अपडेट करने के लिए कैसे?
counter 10 seconds
- उपयोगकर्ता
show.html.erb
पेज show.html.erb
का दौरा किया<%= @post.value %>
का उपयोग करdatabase
से मूल्य लाने।- काउंटर शुरू हुआ और काउंटर का प्रत्येक पुनरावृत्ति
10 seconds
के लिए है। - प्रत्येक
10 seconds
के बाद मैं@post.value
utility
कक्षा का उपयोग करना चाहता था। - डेटाबेस में
@post.value
अद्यतन करें। - स्वचालित रूप से
show.html.erb
ताज़ा और<%= @post.value %>
अद्यतन मूल्य - प्रक्रिया से ऊपर अन्य पृष्ठों पर उपयोगकर्ता चाल जब तक पाश में चलाया जाएगा दिखाएगा।
मैं कोड में समस्या को आसान बनाने के लिए है, तो यह इस चाहते हैं:
देखें पृष्ठ
<%= @post.value %>
<%= @post.name %>
नियंत्रक विधि
def show
@post = Post.find(params[:id])
end
def update
.... #It's empty right now
end
def fetching_value_from_PostUpdate(current_value)
.. # Now I need to update the value in database
end
उपयोगिता वर्ग
मैं वें पर post.value
अद्यतन करना चाहते हैं इस वर्ग में लिखित विधि का ई आधार। छद्म कोड:
class PostUpdate
@@instance_variable
def initialize(post_value)
@@instance_variable = Marshal.load(Marshal.dump(post_value))
end
#Method required to calculate the value
def update_data_in_database
...
return data
end
प्रश्न
- कहाँ मैं काउंटर डाल करने के लिए है? ग्राहक पक्ष या सर्वर पक्ष? मैं रेल में
background jobs
का उपयोग नहीं करना चाहता हूं। show
विधि में मुझे किन परिवर्तनों की आवश्यकता है ताकि प्रत्येक अंतराल पृष्ठ स्वचालित रूप से रीफ्रेश हो जाए और अपडेट किए गए मान को@post.value
में पास कर दें?
आपकी मदद के लिए धन्यवाद!
मुझे लगता है कि आपको बेहतर उत्तर मिल सकता है अगर आप बताएं कि आप वास्तव में क्या करने के लिए कोशिश कर रहे हैं रहा है - आप एक दृश्य काउंटर जोड़ने की कोशिश कर रहे हैं? या लाइव अपडेट के कुछ रूप प्रदान करते हैं? उपयोगकर्ताओं के दृष्टिकोण से इसका वर्णन करने का प्रयास करें। – max
@ एमिटपाल: प्रश्न 2 और 3 उलझन में हैं, क्या आप इनमें से किसी एक या दोनों के बारे में सोच रहे हैं? यदि आप प्रत्येक 10 सेकंड में समय-समय पर पेज रीफ्रेश करते हैं तो AJAX का उपयोग करके एक विशेष मान को अपडेट करना समझ में नहीं आता है। साथ ही, आप '<% = @ post.value%> '' मान को देखने पर अपडेट नहीं कर सकते हैं, आप HTML खंड को अपडेट कर सकते हैं जहां वह मान पृष्ठ पर प्रदान किया जाता है। क्या आप यही कहने की कोशिश कर रहे हैं? क्या मैं कुछ भूल रहा हूँ? – Surya
@ सूर्या हां, मैं उनमें से एक या किसी भी दृष्टिकोण को बेहतर सोच रहा हूं। हां आप 'HTML' प्रतिपादन के बारे में सही हैं। मैंने इस बारे में नहीं सोचा है कि इस मामले में 'अजाक्स' काम नहीं करेगा। आखिरकार मैं एक रास्ता तलाश रहा हूं, जिसे मैं 'post.value' समय-समय पर (conunter के अनुसार) अद्यतन कर सकता हूं, जब तक उपयोगकर्ता पृष्ठ पर नहीं जाता है तब तक' उपयोगिता 'वर्ग विधि का उपयोग कर। मान लें कि @ पहले विज़िट करें: काउंटर स्टार्ट और '@ पोस्ट.वल्यू' = 3 डेटाबेस में मान अपडेट करें और स्वचालित रूप से पृष्ठ को रीफ्रेश करने के बाद HTML व्यू में नया मान प्रस्तुत करें 10 सेकंड के लिए प्रतीक्षा करें और उपर्युक्त प्रोसेस –