मैं थोड़ी देर के लिए फॉर्मेटास्टिक का उपयोग कर रहा हूं, और यह फ़ॉर्म के कार्यान्वयन को तेज करने के लिए बहुत अच्छा है। हालांकि, मेरे पास एक विशेष मामला है जहां मुझे अपने रूप में प्रदर्शित होने वाले कुछ और अनुकूलन की आवश्यकता है। विशेष रूप से, फ़ील्ड छवियों को अपलोड करने के लिए एक फ़ाइल अपलोड फॉर्म है, और संपादन फ़ॉर्म पर, मैं अपलोड किए गए छवि के वर्तमान संस्करण का थंबनेल दिखाना चाहता हूं।क्या रेल में इस कस्टम फॉर्मेटास्टिक इनपुट के लिए कोई बेहतर तरीका है?
मैं इस काम के लिए मिला है, लेकिन यह आवश्यक है कि मैं कस्टम HTML मार्कअप, जिसका अर्थ है कि किसी भी समय Formtastic में परिवर्तन उत्पादन प्रारूप, मैं अपने मिलान एचटीएमएल अद्यतन करने की आवश्यकता का उपयोग करें। यहाँ क्या मैं अभी कर लिया है:
<%= form.inputs do %>
<% if form.object.new_record? -%>
<%= form.input :image, :required => true, :hint => 'Maximum size of 3MB. JPG, GIF, PNG.' %>
<% else -%>
<li class="file input required" id="profile_image_input">
<label class="label" for="profile_image">Image</label>
<%= image_tag form.object.image.url(:thumb), :class => 'attachment' %>
<%= form.file_field :image %>
<p class="inline-hints">Maximum size of 3MB. JPG, GIF, PNG.</p>
</li>
<% end -%>
<% end %>
आदर्श रूप में, यह निम्नलिखित है, जहां input_html
इनपुट, संकेत के लिए सृजित HTML माना जाता है, आदि .:
<%= form.inputs do %>
<%= form.input :image, :required => true, :hint => 'Maximum size of 3MB. JPG, GIF, PNG.' do |input_html| %>
<%= image_tag form.object.image.url(:thumb), :class => 'attachment' unless form.object.new_record? %>
<%= input_html %>
<% end %>
<% end %>
इस तरह कुछ भी पहले से ही मौजूद है? या क्या कोई और ऐसा विकल्प है जो मेरे जीवन को आसान बना देगा?
हाँ, अच्छा लग रहा है। मेरे पास बहुत से कस्टम इनपुट हैं जो इस तरह की चीजें करते हैं, या अक्षम इनपुट में स्ट्रिंग के रूप में मान प्रदर्शित करते हैं। –
मैं स्रोत कोड में संपादन/जोड़ने के लिए नया हूं। आपने अटैचमेंट इनपुट क्लास कहां रखा? क्या आपने अपनी रेल लिब फ़ोल्डर में कक्षा बनाई थी?क्या आपने इसे इनपुट फ़ोल्डर में रखा था? यदि इनपुट फ़ोल्डर में आप विभिन्न संस्करणों का प्रबंधन कैसे करते हैं? यदि जस्टिन ने कोड बेस अपडेट किया तो क्या होगा? – ebbflowgo
@ebbflowgo, मैंने उपरोक्त कोड को 'ऐप/इनपुट/attachment_input.rb' में चिपकाया और यह काम करता है। – ShadSterling