【发布时间】:2013-03-29 02:58:30
【问题描述】:
在 Rails 中,我将有一个用于具有索引、显示和 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 中的 home 操作:
def home
@widgets = Widget.all
respond_to do |format|
format.html
format.json { render json: @widgets}
end
#render_with_templates?
end
【问题讨论】:
-
您是否尝试过覆盖默认的炼油厂控制器并添加自定义路由
-
我正在覆盖位于 app>controllers>refinery 目录中的默认 pages_controller.rb。我所做的唯一改变是在 home 动作中。
标签: ruby ruby-on-rails-3 refinerycms refinery