在 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 方法。如果我用上面的代码覆盖炼油厂 pages_controller.rb 中的 home 操作,我会收到错误
未初始化的常量 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 应用程序可以做到这一点并且它可以工作,但我想知道如何在炼油厂中做到这一点,因为弄清楚这一点将为我打开世界。有人可以建议或指出一些我可能忽略的文档,这些文档会有所帮助。
编辑 这是位于 app>controllers>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