这个插件使用起来比较麻烦,
有耐心的朋友可以看看这个文章。
http://www.mattmccray.com/pivot/archive.php?c=Theme_Support
笔者摸索的半天也没有弄出个太多的东西,只是对背景颜色做了一些改动。
步骤如下:
1. 安装 theme
2. 更改theme中的routeset_ex文件,否则启动都成了问题。
vendor/plugins/theme_support/lib/patches/routeset_ex.rb
# Extends <tt>ActionController::Routing::RouteSet</tt> to automatically add the theme routes
class ActionController::Routing::RouteSet
alias_method :__draw, :draw
# Overrides the default RouteSet#draw to automatically
# include the routes needed by the ThemeController
def draw
clear!
map = Mapper.new(self)
create_theme_routes(map)
yield map
named_routes.install
end
# Creates the required routes for the ThemeController...
def create_theme_routes(map)
map.theme_images "/themes/:theme/images/*filename", :controller => 'theme', :action => 'images'
map.theme_stylesheets "/themes/:theme/stylesheets/*filename", :controller => 'theme', :action => 'stylesheets'
map.theme_javascript "/themes/:theme/javascript/*filename", :controller => 'theme', :action => 'javascript'
map.connect "/themes/*whatever", :controller => 'theme', :action => 'error'
end
end
3. 然后是 运行 gem install theme_generator,安装theme生成器
4. 生成theme :
#> ruby script/generate theme mytheme
mytheme 是 theme 名称,可以更改,比如: default, admin_theme ....
这样就可以在 rails应用 的根路径下生成一个文件夹 themes
最好生成两个,这样有一个比较
#> ruby script/generate theme mytheme2
将它移动到 public下面。
5.我们可以在themes下发现 有mytheme,mytheme2 目录
找到mytheme/stylesheets,并且在下面建立一个theme.css
编写内容
BODY {
background-color:#00FF00;
}
同样创建 mytheme2/stylesheets/theme.css,内容相似,但是不一样:
BODY {
background-color:#FFFF00;
}
好了,下面就是更改我们之前代码的问题了。
6. 在app/controller/application.rb中,
class ApplicationController < ActionController::Base
theme :get_user_theme
def get_user_theme
# This assumes, of course, your User has a 'theme' field
#return @session[:user].nil? ? 'default' : @session[:user].theme
return session[:username]=="admin" ? "mytheme" : 'mytheme2'
end
... ...
end
接着在我们的views页面中增加代码
e.g. app/views/layouts/homepage.rhtml
<html>
<head>
...
<link href="<%= theme_stylesheet_path %>" media="screen" rel="Stylesheet" type="text/css" />
...
</head>
...
</html>
好了,全部都设定好了,重新启动一下服务,然后使用不同的用户登录,admin登录的时候的homepage的背景颜色应该会与其他用户登录时候的不一样。
笔者 才疏学浅 ,就暂时研究到这里了。剩下的就看读者们自己继续研究了 。 good luck
参考文章:
http://www.mattmccray.com/pivot/archive.php?c=Theme_Support
http://www.webdrivenblog.com/2007/11/27/installing-the-theme-support-plugin-with-rails-1-2
http://agilewebdevelopment.com/plugins/theme_support
分享到:
相关推荐
Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。
Rails Plugins:Extending Rails Beyond the Core
gem "mongoid_rails_migrations" 如何使用 创建迁移 $ rails generate mongoid:migration 运行迁移: $ rails db:migrate $ rails db:migrate:down VERSION= $ rails db:migrate:up VERSION= $ rails db:rollback...
“开发人员的笔记本”记录了一些准则,技术和想法,这些准则,技术和想法将经典的面向对象的思想应用于Ruby on Rails应用程序。
附上Jamis的rdoc模板文件,tar解压即可。 博文链接:https://lgn21st.iteye.com/blog/199681
### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...
RAILS: Radial Assembly Improvement by Long Sequence Scaffolding Cobbler: Gap-filling with long sequences 描述 RAILS 和 Cobbler 是基因组学应用程序,用于支架和自动完成具有长 DNA 序列的基因组组装。 它们...
SwaggerYard :: Rails SwaggerYard :: Rails gem是一个Rails引擎,旨在使用SwaggerYard解析您的Yardocs API控制器。 它将创建一个Swagger-UI投诉JSON,以通过安装SwaggerYard :: Rails :: Engine的位置提供。安装将...
Learn Web Development with Rails Clear EPUB version in English, Second Edition “The author is clearly an expert at the Ruby language and the Rails framework, but more than that, he is a working ...
克隆/下载仓库确保Postgres数据库正在运行运行bundle install从Gemfile安装所有gem 运行rails db:drop然后运行rails db:drop rails db:create然后rails db:migrate创建数据库表要启动服务器,请运行命令rails s 在...
resources :posts生成以下端点: GET|POST /posts GET|PUT /posts/:id 删除 /posts/:id安装$ npm i vuex-rails-plugin用法该插件可以像这样导入到任何 Vuex 商店: // store.jsimport Vuex from 'vuex'import Vue ...
在本篇内容中,我们将深入探讨如何利用Ruby on Rails(简称Rails)这一强大的Web应用程序框架来构建可伸缩且易于维护的RESTful API。Rails以其简洁优雅的语法、高效的开发速度以及良好的社区支持而闻名,这使得它...
[Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Rails 3 is a huge step forward. You can now easily extend the framework, ...
Mojolicious::Plugin::AdvancedMod - Mojolicious 的更多包子 版本 本文档涵盖 2014 年 1 月发布的 Mojolicious::Plugin::AdvancedMod* 0.38 版 概要 $self->plugin('AdvancedMod', skip_mods => qw/taghelpers/); ...
提供用于Rails 4.x(及更高版本)资产管道的Sprockets实现。 安装 gem 'sprockets-rails' , :require => 'sprockets/railtie' 或者,如果禁用了Bundler自动请求功能,则在config/application.rb require 'sprockets...