आप रिफाइनरी CMS में कस्टम फ़ील्ड कैसे जोड़ सकते हैं? यही है, मैं स्क्रीनशॉट, प्रकाशक नाम, श्रेणी और अन्य क्षेत्रों की तरह अन्य सामान का एक गुच्छा शामिल करने के लिए मूल पृष्ठ मॉडल का विस्तार करना चाहूंगा। आप इसे कैसे लागू करते हैं?
उत्तर:
जवाब के लिए 2 № 1रिफाइनरी गाइड के साथ (उत्कृष्ट) गेटिंग स्टार्टेड पर एक नज़र डालें। धारा 6 में गाइड अतिरिक्त क्षेत्रों को जोड़ने का तरीका बताता है - उदाहरण तिथि, चित्र और ब्लर्ब में - इंजनों का उपयोग करना:
उत्तर के लिए 7 № 2
रिफाइनरी के एक बेस मॉडल का विस्तार करने के लिए, इंजन बनाना हमेशा एक विकल्प नहीं होता है।
मैंने पृष्ठ मॉडल को दिनांक फ़ील्ड द्वारा विस्तारित किया है
- पृष्ठ तालिका माइग्रेट करें
- बंदर पृष्ठ मॉडल पैच
- जोड़ने (वास्तव में विस्तार) एक आंशिक रूप में
विस्तार से:
rails g migration AddDateToPage event_date:date
rake db:migrate
के साथ एप्लिकेशन / मॉडल / page.rb जोड़ें
require Refinery::Pages::Engine.config.root + "app" + "models" + "page"
class Page
attr_accessible :event_date
end
यह पृष्ठ मॉडल का विस्तार करता है ताकि मेरा कस्टम फ़ील्ड बड़े पैमाने पर असाइनमेंट (धन्यवाद के लिए) सेट हो http://railsrx.com/2011/04/15/overriding-refinery-extending-globalize-and-pow/ आवश्यकता के लिए)।
अब फाइल ऐप / व्यू / एडमिन / पेज / _form_fields_after_title.html.erb बनाएं जो रिफाइनरी द्वारा प्रदान किया गया स्टब है। आप इसके साथ भी बना सकते हैं
rake refinery:override view=admin/pages/_form_fields_after_title
यहाँ मैंने फॉर्म फील्ड को परिभाषित किया (f रिफाइनरी द्वारा एक form_for ऑब्जेक्ट के साथ सेट किया गया है)
<div class="field">
<%= f.label :event_date, t("admin.pages.event_date") %>
<%= f.text_field :event_date %>
</div>
एप्लिकेशन को पुनरारंभ करने के बाद, नया फ़ील्ड सक्रिय है।