Rails - 在静态页面中列出模型的记录

Rails - Listing records of a model in a static page

我正在尝试将模型的记录(列出所有记录,如 Posts.all)调用到绑定到另一个控制器的视图。

所以,我想访问 Posts_controller 的索引操作,其中包含我想要访问的 .all 列表和 .group_by 列表,并将它们列在一个静态页面中Pages_controller(命名为 yonetim)

这只是为了列出管理员视图的 posts(就像活动管理员中的列表)。

我想,我不需要 post 任何代码,因为问题很抽象,但如果需要,我会编辑问题。

* 编辑澄清*

这是我的posts_controller.rb

class PostsController < ApplicationController

    before_action :find_post, only: [:show, :edit, :update, :destroy]
    before_action :authenticate_user!, except: [:index, :show]

    load_and_authorize_resource

    def index
        @posts = Post.all.order('postdate DESC')
        @posts_by_month = @posts.group_by { |post| post.postdate.strftime('%m - %Y')}
    end

    def show
    end

    def new
        @post = current_user.posts.build
    end

    def create
        @post = current_user.posts.build(post_params)

        if @post.save
            redirect_to @post
        else
            render 'new'
        end
    end

    def edit
    end

    def update
        if @post.update(post_params)
            redirect_to @post
        else
            render 'edit'
        end
    end

    def destroy
        @post.destroy
        redirect_to root_path
    end

    private

    def post_params
        params.require(:post).permit(:id, :title, :body, :postdate)
    end

    def find_post
        @post = Post.find(params[:id])
    end

end

可以看出这是一个基本的博客应用。到达 root_path(posts#index 路由)的访问者可以看到基于月份和年份分组的 post 记录。

我想添加的是从我为管理界面(类似于活动管理 gem)创建的静态页面到达新的、编辑销毁和索引。@posts。

** 这是 pages_controller.rb **

class PagesController < ApplicationController
    def yonetim
    end
end

因此,当我点击 /yonetim(路由以获取页面#yonetim)时,我希望用户看到 posts 控制器的索引操作,其中 link 用于新建、显示、编辑和销毁记录。

***系统还设计了 admin boolean 和 cancan,因此如果用户未登录或没有管理员使用权限,他们将移至 root_path,但有例外。

我的问题是,我已经尝试了几乎所有方法来在 pages/yonetim 视图或 [=50] 中列出 posts#index 方法的 @posts 记录=] yonetim 方法。

这样我就可以在我的管理视图中列出它们并使用它们。

如果还需要什么,请告诉我。

提前致谢, 穆斯塔法

这里有多个选项 pages#yonetim:

  1. 只需重定向到 'posts#index'
  2. posts#index 一样分配视图变量(@posts@posts_by_month)并呈现模板 posts/index.
  3. posts#index 一样分配视图变量(@posts@posts_by_month)并渲染模板 pages/index(本例中的默认视图)。

前两个选项的缺点是所有 links (new/edit/destroy) 将 link 到 PostsController 而不是 PagesController ,因为您正在重新使用为 PostsController.

创建的视图