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 のホーム アクションをオーバーライドすると、エラーが発生します。
初期化されていない定数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%>
ウィジェットとガジェットの両方が精製エンジンです。私はまさにこれを行うバニラレールアプリを持っていますが、それは機能しますが、これを理解することで世界が開かれるので、製油所でそれを行う方法を知りたいです. 誰かがアドバイスしたり、私が見落としている可能性のあるドキュメントを指摘してくれたりして、助けてくれますか.
編集 これは、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