我在某处读到了一个使用rails_admin,devise,ckeditor,kaminari等创建自己的CMS的人.但是我如何创建自己的CMS /管理区域以便客户端可以在不弄乱代码或不得不学习的情况下对内容进行成本化处理任何代码?
我有Ruby 1.9.2和Rails 3.2.2.有谁知道如何做到这一点,让我自己的CMS插入这个现有的应用程序?是否有某种教程或任何人可以向我解释这个?提前致谢!
解决方法
如何使用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显然存在一些差异;包括嵌套资源.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。