我试图弄清楚如何将一个控制器的内容路由到另一个控制器的内容。
目前,我有两个控制器 -
1.静态页面控制器 - 这非常简单,它用于生成一个页面(带有可列表页面)
class StaticPagesController < ApplicationController
def home
end
end
2.Guides controller - 这是用户可以(当前)向db添加指南的地方。
class GuidesController < ApplicationController
def home
end
def show
@guide = Guide.find(params[:id])
end
def index
@guide = Guide.all
end
def new
@guide = Guide.new
end
def create
@guide = Guide.new(guide_params)
if @guide.save
redirect_to '/guides'
else
render 'new'
end
end
private
def guide_params
params.require(:guide).permit(:title, :description, :image, :date, :date_end, :extra_info)
end
端
我想显示控制器的INDEX部分(目前在我的根目录中的'/ guides',或静态页面控制器中的'home'。
我试过摆弄所有这些,我的最后一个调用端口是routes.rb文件。然而,我并不是所有人都确定,这似乎足够直截了当,它让我无法做到这一点。
答案 0 :(得分:1)
可能的解决方案之一是您使用:
class StaticPagesController < ApplicationController
def home
@guide = Guide.all
end
end
并将指南的index,html.erb中的代码复制到静态页面的home.html.erb。 除此之外,你可以使用渲染:link
编辑:
使用partial显示指南索引:
class GuidesController < ApplicationController
def index
@guide = Guide.all
render partial: "index"
end
end
在您对指南重命名&#34; index.html.erb&#34;的观点中到&#34; _index.html.erb&#34;和 在static_pages / home.html.erb中添加:
<%= render :partial => "guides/index" %>