pes*_*ari 3 admin content-management-system ruby-on-rails-3
我已经为客户建立了一个网站,但他们希望能够对网页内容进行成本化,即图片和文本.我已经尝试过并尝试过,但是我无法在我的应用程序中使用像RefineryCMS那样的插件.
我在某处读到了一个使用rails_admin,devise,ckeditor,kaminari等创建自己的CMS的人.但是我如何创建自己的CMS /管理区域以便客户端可以在不弄乱代码或不得不学习的情况下对内容进行成本化处理任何代码?
我有Ruby 1.9.2和Rails 3.2.2.有谁知道如何做到这一点,让我自己的CMS插入这个现有的应用程序?是否有某种教程或任何人可以向我解释这个?提前致谢!
Ste*_*ler 13
Rails_admin非常好,但对于某些人想要的东西来说往往太多了.开发自己的管理部分非常简单.
如何使用Rails 3.2创建自己的RESTful Admin部分
使用CRUD为所有模型创建自己的Admin部分,包括使用命名空间的嵌套资源.
示例 - 博客的管理部分 - 模型:发布,评论(Post的嵌套资源)
我假设您已经开发了基本的博客应用程序.有关如何设置所有这些内容,请参见http://guides.rubyonrails.org/getting_started.html.
第一步 - 创建管理部分和控制器
rails g controller admin/admin
Run Code Online (Sandbox Code Playgroud)
这将生成一个空控制器,我们所有的管理控制器都将从该控制器继承.它还将创建views/admin/admin/index.html.erb,它可以充当仪表板.
创建管理控制器
rails g controller admin/posts
rails g controller admin/comments
Run Code Online (Sandbox Code Playgroud)
这将在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
Run Code Online (Sandbox Code Playgroud)
步骤3 - 编辑管理员视图和控制器文件以使用管理命名空间现在我们已经生成了所有内容,我们只需要使其与管理员控制器一起使用而不是前端.
更改所有Admin ::*控制器的继承.
class Admin::PostsController < ApplicationController => class Admin::PostsController < Admin::AdminController
Run Code Online (Sandbox Code Playgroud)
和
class Admin::CommentsController < ApplicationController => class Admin::CommentsController < Admin::AdminController
Run Code Online (Sandbox Code Playgroud)
从应用程序/视图/职位的所有模板复制到应用程序/视图/管理/职位从复制应用程序/意见/评论的应用程序/视图/管理的所有模板/注释的所有功能,从复制到posts_controller.rb管理/ posts_controller.rb复制所有功能从comments_controller.rb到admin/comments_controller.rb
为您希望管理CRUD的每个模型添加一个指向views/admin/admin/index.html.erb的链接.比如帖子.
<%= link_to "Posts", admin_posts_path %>
Run Code Online (Sandbox Code Playgroud)
编辑admin/posts_controller.rb.将3个redirect_to调用更改为使用admin命名空间.创建和更新方法:
redirect_to @post => redirect_to [:admin, @post]
Run Code Online (Sandbox Code Playgroud)
破坏方法:
redirect_to posts_url => redirect_to admin_posts_url
Run Code Online (Sandbox Code Playgroud)
在所有模板中进行类似的更改,以便它们在管理命名空间中工作.您需要进行以下更改:
post/_form.html.erb:
form_for(@post) => form_for([:admin, @post])
Run Code Online (Sandbox Code Playgroud)
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" %>
Run Code Online (Sandbox Code Playgroud)
comment/_comment.html.erb
<%= link_to 'Destroy Comment', [comment.post, comment],... => <%= link_to 'Destroy Comment', [:admin, comment.post, comment],...
Run Code Online (Sandbox Code Playgroud)
comment/_form.html.erb更改:
<%= form_for([@post, @post.comments.build]) do |f| %>=> <%= form_for([:admin, @post, @post.comments.build]) do |f| %>
Run Code Online (Sandbox Code Playgroud)
就这样.现在,您将拥有一个/ admin仪表板,其中包含指向/ admin/posts和CRUD操作的链接.
向http://icebergist.com/posts/restful-admin-namespaced-controller-using-scaffolding大喊大叫.他从2008年开始的解决方案仍然非常重要,但是,这个答案的Rails 3.2显然存在一些差异; 包括嵌套资源.
| 归档时间: |
|
| 查看次数: |
2394 次 |
| 最近记录: |