加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 如何使用rails_admin等将自己的CMS构建到Rai

发布时间:2020-12-17 01:46:29 所属栏目:百科 来源:网络整理
导读:我已经为客户建立了一个网站,但他们希望能够对网页内容进行成本化,即图片和文本.我已经尝试过并尝试过,但是我无法在我的应用程序中使用像RefineryCMS那样的插件. 我在某处读到了一个使用rails_admin,devise,ckeditor,kaminari等创建自己的CMS的人.但是我如何
我已经为客户建立了一个网站,但他们希望能够对网页内容进行成本化,即图片和文本.我已经尝试过并尝试过,但是我无法在我的应用程序中使用像RefineryCMS那样的插件.

我在某处读到了一个使用rails_admin,devise,ckeditor,kaminari等创建自己的CMS的人.但是我如何创建自己的CMS /管理区域以便客户端可以在不弄乱代码或不得不学习的情况下对内容进行成本化处理任何代码?

我有Ruby 1.9.2和Rails 3.2.2.有谁知道如何做到这一点,让我自己的CMS插入这个现有的应用程序?是否有某种教程或任何人可以向我解释这个?提前致谢!

解决方法

Rails_admin非常好,但对于某些人想要的东西来说往往太多了.开发自己的管理部分非常简单.

如何使用Rails 3.2创建自己的RESTful Admin部分

使用CRUD为所有模型创建自己的Admin部分,包括使用命名空间的嵌套资源.

示例 – 博客的管理员部分
– 模特:发布,评论(邮政的嵌套资源)

我假设您已经开发了基本的博客应用程序.有关如何设置所有这些的信息,请参阅http://guides.rubyonrails.org/getting_started.html.

第一步 – 创建管理部分和控制器

rails g controller admin/admin

这将生成一个空控制器,我们所有的管理控制器都将从该控制器继承.它还将创建views / admin / admin / index.html.erb,它可以充当仪表板.

创建管理控制器

rails g controller admin/posts
rails g controller admin/comments

这将在admin命名空间中生成一个空的Admin :: PostsController和Admin :: CommentsController

第2步 – 为管理员控制器添加命名空间
转到config / routes.rb并添加以下内容

namespace :admin do
      root to: "admin#index"
      resources :posts do
        resources :comments,:only => [:create,:destroy]
      end
    end

步骤3 – 编辑管理视图和控制器文件以使用管理命名空间
现在我们已经生成了所有内容,我们只需要使用管理控制器而不是前端.

更改所有Admin :: *控制器的继承.

class Admin::PostsController < ApplicationController => class Admin::PostsController < Admin::AdminController

class Admin::CommentsController < ApplicationController => class Admin::CommentsController < Admin::AdminController

将所有模板从app / views / posts复制到app / views / admin / posts
将所有模板从app / views / comments复制到app / views / admin / comments
将所有函数从posts_controller.rb复制到admin / posts_controller.rb
将comments_controller.rb中的所有函数复制到admin / comments_controller.rb

为您希望管理CRUD的每个模型添加一个指向views / admin / admin / index.html.erb的链接.比如帖子.

<%= link_to "Posts",admin_posts_path %>

编辑admin / posts_controller.rb.将3个redirect_to调用更改为使用admin命名空间.
创建和更新方法:

redirect_to @post => redirect_to [:admin,@post]

破坏方法:

redirect_to posts_url => redirect_to admin_posts_url

在所有模板中进行类似的更改,以便它们在管理命名空间中工作.您需要进行以下更改:

post / _form.html.erb:

form_for(@post) => form_for([:admin,@post])

post / edit.html.erb,index.html.erb,new.html.erb& show.html.erb查找所有实例:

<%= link_to ‘Show’,@post %> => <%= link_to ‘Show’,[:admin,@post] %>

posts_path => admin_posts_path

edit_post_path(@post) => edit_admin_post_path(@post)

new_post_path => new_admin_post_path

<%= render "comments/form" %> =>  <%= render "admin/comments/form" %>

comment / _comment.html.erb

<%= link_to 'Destroy Comment',[comment.post,comment],... => <%= link_to 'Destroy Comment',comment.post,...

comment / _form.html.erb更改:

<%= form_for([@post,@post.comments.build]) do |f| %>=> <%= form_for([:admin,@post,@post.comments.build]) do |f| %>

就这样.现在,您将拥有一个/ admin仪表板,其中包含指向/ admin / posts和CRUD操作的链接.

大喊到http://icebergist.com/posts/restful-admin-namespaced-controller-using-scaffolding.他从2008年开始的解决方案仍然非常重要,但是,这个答案的Rails 3.2显然存在一些差异;包括嵌套资源.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读