@widgets = Widget.all
respond_to do |format|
format.html
format.json {render :json => @widgets}
然后,在我的主页或我的主应用程序文件夹中的任何页面上,我可以说
<% @widgets.each do |w| %>
<p><%= w.name %></p>
<%end%>
使用Refinery我有一个小部件引擎,这些引擎中的控制器没有标准的索引,显示和crud方法。如果我使用上面的代码覆盖refinery pages_controller.rb中的home操作,我会收到错误
未初始化的常量Refinery :: PagesController :: Widget
我的问题是:如何在我的炼油厂引擎中引用类,以便我可以将它们包含在我的主要应用程序的视图中?
实施例: 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%>
其中小部件和小工具都是炼油厂引擎。我有一个香草导轨应用程序,它做了这件事,它的工作,但我想知道如何在炼油厂做到这一点,因为搞清楚这将打开世界给我。有人可以建议或指出一些我可能忽略的文件,这将有所帮助。
修改 这是位于app&gt; controllers&gt; refinery目录中的pages_controller.rb中的主页操作:
def home
@widgets = Widget.all
respond_to do |format|
format.html
format.json { render json: @widgets}
end
#render_with_templates?
end
答案 0 :(得分:0)
Refinery CMS使用复数模型名称命名其引擎名称空间。然后它将引擎名称空间嵌入到Refinery名称空间中。因此,在主应用程序结构中查看视图中所有小部件的正确方法是
@widgets = Refinery::Widgets::Widget.all