Пользовательские поля в Refinery CMS - PullRequest
0 голосов
/ 11 ноября 2011

Как добавить пользовательские поля в Refinery CMS?То есть я хотел бы расширить базовую модель страницы, включив в нее множество других вещей, таких как снимки экрана, имя издателя, категорию и другие поля.Как вы реализуете это?

Ответы [ 2 ]

7 голосов
/ 21 марта 2012

Чтобы расширить базовую модель нефтеперерабатывающего завода, генерация двигателя не всегда возможна.

Я расширил модель страницы на поле даты на

  • перенести таблицу страниц
  • Обезьяна патч модели страницы
  • добавить (фактически расширить) частичное в виде

в деталях:

rails g migration AddDateToPage event_date:date
rake db:migrate

добавить приложение/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/ за оператор require).

Теперь создайте файл 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>

После перезапуска приложения новое полеактивный.

2 голосов
/ 11 ноября 2011

Ознакомьтесь с (превосходным) руководством по началу работы с НПЗ.В Разделе 6 руководство описывает, как добавить дополнительные поля - в примере даты, изображения и объявления - используя движки:

http://refinerycms.com/guides/getting-started-with-refinery#extending-refinery-with-your-first-engine

...