Как добавяте потребителски полета в CMS на рафинерия? Това означава, че бих искал да разширя основния модел на страницата, така че да включва няколко други неща, като снимки на екрани, име на издател, категория и различни други полета. Как го прилагате?
Отговори:
2 за отговор № 1Разгледайте (отлично) Ръководство за начало на работа с рафинерия. В раздел 6 ръководството излага как да се добавят допълнителни полета - в примерите за двигатели с дата, картина и видеоклип:
7 за отговор № 2
За да се разшири базовият модел на рафинерията, генерирането на двигател не винаги е опция.
Разширих модела на страницата с поле за дата с
- мигрирайте таблицата със страниците
- маймуна кръпка на страницата модел
- добавете (в действителност разшири) частично във формата
подробно:
rails g migration AddDateToPage event_date:date
rake db:migrate
добавете app / models / 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/ за изявлението изискване).
Сега създайте файла app / views / admin / pages / _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>
След рестартиране на приложението, новото поле е активно.