Как сделать коллекцию с домашней страницы в рельсах 3.12

В rails у меня был бы контроллер для виджетов с методами index, show и crud.
контроллер индекса будет иметь простой

@widgets = Widget.all
respond_to do |format|
  format.html
  format.json {render :json => @widgets}

затем, на моей домашней странице или любой странице в моей основной папке приложений, я мог бы сказать,

<% @widgets.each do |w| %>
     <p><%= w.name %></p>
<%end%>

В Refinery у меня есть движок виджетов, а у контроллеров в этих движках нет стандартных методов index, show и crud. Если я переопределю действие home в refinery pages_controller.rb приведенным выше кодом, я получу ошибку

неинициализированная константа Refinery::PagesController::Widget

У меня вопрос: как я могу ссылаться на классы в своих двигателях нефтеперерабатывающего завода, чтобы я мог включить их в свои представления из моего основного приложения rails?

Пример: app.main.views.index.html.erb

 <h1> this is my home page.  We sell all sorts of stuff including: </h1>

 <% @widgets.each do |w| %>
      <p><%= w.name %></p>
 <%end%>

 <% @gadgets.each do |g| %>
     <p><%= g.name %></p>
 <%end%>

где и виджеты, и гаджеты являются двигателями НПЗ. У меня есть приложение vanilla rails, которое делает то же самое, и оно работает, но я хотел бы знать, как это сделать на нефтеперерабатывающем заводе, потому что выяснение этого откроет мне мир. Может ли кто-нибудь посоветовать или указать на какую-то документацию, которую я мог упустить из виду?

РЕДАКТИРОВАТЬ Это домашнее действие в моем pages_controller.rb, расположенном в app> controllers> refinery directory:

 def home
  @widgets = Widget.all
  respond_to do |format|
    format.html
    format.json { render json: @widgets}
  end  
  #render_with_templates?
 end

1 ответ

Refinery CMS называет свои пространства имен двигателя множественным именем модели. Затем он вкладывает пространства имен двигателя в пространство имен НПЗ. Таким образом, правильный способ запроса всех моих виджетов в представлении в основной структуре приложения

@widgets = Refinery::Widgets::Widget.all
Другие вопросы по тегам