rails 3出来以后,大家都开始尝试里面的各种功能,我早先也试过其中的项目模板功能,感觉不错,在github上放了一个地址用来记录模板,地址在: https://github.com/fsword/rails_templates
,今天拿这几个模板在windows上测试了一下,发现一些问题,这里记录一下
先说使用,模板使用起来只要一行代码就行:
$ rails new your_app -m https://github.com/fsword/rails_templates/raw/master/jruby_template0.rb
你也可以下载到本地再用:
$ rails new your_app -m ./jruby_template0.rb
是不是很简单?那么,它能做什么呢,我用的结果是,它大致上可以做——任何事
没错,从项目的gem依赖、数据库驱动配置到编写主要模型类、公共页面甚至特殊页面等等等等,只要你愿意,都可以写在这里面,因为它就是一个ruby代码脚本,只不过是用 rails 命令建立项目后进行了后处理而已
当然,简单归简单,真要把所有逻辑写进去还是很麻烦的,这个工具主要还是用来做项目骨架
这里面可以调用哪些常见的api呢,我没有在网上找到如何编写模板的文档,所以想了一个笨办法——写个这样的模板:
# filename : x.rb
self.methods.sort.each{|m| p m}
这样,执行一下 rails new your_app -m x.rb,我们就能得到可以调用的api了。
大致上,常见的api包括:
- remove_file: 删除指定文件,这个api可以方便的跨平台使用
- remove_dir: 删除指定目录,这个api可以方便的跨平台使用
- say: 在标准输出打印一段文字
- gem: 在Gemfile中添加一个依赖包
- gsub_file: 替换指定文件的内容,有了它,就不必费劲的写 File.open f.write 了
- run: 执行一个外部命令
- application: 参数是一个闭包,在application.rb文件中添加闭包中的内容
- generate: 调用 rails generator
- route: 添加 route 记录
- git: 执行 git 操作,例如: init, add, commit 等等
- rake: 执行 rake 任务
这些命令中,需要注意的是 run 命令,它与操作系统环境有关,如果编写这样的代码:
run 'rm README'
那么只能在非windows环境下运行了
另外还有一个命令:copy_file,但是它的相对目录不是所创建的rails项目,而我还没有找到代替方法,暂时不推荐了
还有一个很头疼的问题是关于 https 的,受到大中华局域网的影响,git上的资源不是很稳定,所以需要重试,我改了一下代码,添加了一个函数
def try_to n
if block_given?
n.times{|i|
begin
return yield
rescue
p "failed #{i} times"
sleep 1
end
}
nil
end
end
def try_get url, file=nil
try_to(3)do get url,file end
end
然后,把
get "https://github.com/fsword/rails_templates/raw/master/resource/gitignore", ".gitignore"
改为
try_get "https://github.com/fsword/rails_templates/raw/master/resource/gitignore", ".gitignore"
即可
Ok, have fun!
分享到:
相关推荐
标题中的"Ruby-开箱即用的Rails项目模板"指的是一个预先配置好的Rails项目结构,它包含了特定的设置和集成,以便开发者能够快速启动新项目,无需从零开始配置各种依赖和工具。这种模板通常会包含最佳实践和常用库,...
这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何利用Rails的强大功能来创建一个允许用户上传、分享和浏览图片的应用。 1. **Rails框架基础**: Rails的核心理念是DRY(Don't...
在这个阶段,你将学习如何使用命令行工具来创建一个新的Rails项目,并理解Rails的目录结构及其各自的作用。 接下来,你将深入到MVC架构中,学习如何创建数据模型(Models),这是Rails应用程序的核心部分,用于与...
Rails项目通常包括数据库设计、控制器逻辑、视图模板以及模型业务规则等多个部分,这都是开发者在深入学习过程中必须掌握的核心概念。 描述中重复提到"ruby on rails打包的程序",这意味着提供的压缩包可能包含了一...
5. **生成器**:Rails提供了一系列命令行生成器,如`rails new`创建新项目,`rails generate controller`创建控制器,`rails generate model`创建模型等,这能快速构建应用结构。 6. **ActiveRecord查询接口**:...
在Rails 3中,gem bundle的概念被正式引入,允许开发者将项目依赖的gem封装到一个bundle中,这有助于项目的可移植性和版本控制。这里提到的“bubble”可能指的是gem bundle的自包含特性,即它们可以在项目之间轻松...
- **作品**: 除了《Rails 101 入门电子书》外,xdite还编写了其他几本书籍,如《Maintainable Rails View》、《Lean SaaS》以及《Land Dream Rails Job》等。 - **特色**: 这本书是中文世界唯一一本基于Rails 4.0.0+...
2. **Active Record**:这是Rails中的ORM(对象关系映射)库,它允许开发者用Ruby代码操作数据库,无需编写SQL语句。 3. **Action Controller**:负责处理HTTP请求并调用模型来执行业务逻辑,然后将结果传递给视图...
Aptana是一款强大的集成开发环境(IDE),尤其适用于Rails项目的开发,它提供了丰富的特性来提升开发效率。本教程将详细介绍如何使用Aptana与Rails结合,创建一个功能完备的Web应用程序。 首先,我们需要安装Aptana...
Rails提供了一套强大的模板系统,使得开发者可以使用ERB(Embedded Ruby)或HAML等语法来编写视图。 4. **Routes**:Rails的路由系统负责将HTTP请求映射到相应的控制器动作。通过配置routes.rb文件,开发者可以定义...
Rails是Ruby语言的一个著名Web应用框架,以敏捷开发和“约定优于配置”...通过对这些版本的源码进行分析和学习,开发者不仅可以提升对Rails框架的理解,还能在实际项目中运用这些知识,编写出更高效、更安全的Web应用。
7. **Gemfile和Bundler**:Rails项目通过Gemfile管理依赖,Bundler工具确保在开发环境中安装正确的gem版本。 8. **ActiveSupport**:包含许多实用的工具类和模块,如时间戳处理、字符串处理等,它们被广泛地应用于...
学习Rails的过程中,除了阅读文档,还可以参考在线教程、视频课程、社区论坛和开源项目,以加深理解和实践。Rails社区活跃,有许多优秀的资源可以帮助初学者快速上手。 总的来说,Ruby on Rails是一个强大的开发...
- **视图文件**:通常使用ERB模板语言来编写视图文件,这些文件位于`app/views`目录下。 #### 八、组件 - **定义**:组件是可重用的代码块,用于封装重复使用的UI元素或逻辑。 - **使用**:在视图文件中通过`...
设计模式是解决常见软件设计问题的模板,能够帮助开发者编写更加可维护、可扩展的代码。Observer 模式允许对象在状态变化时通知其他对象,而 Singleton 确保一个类只有一个实例,并提供一个全局访问点。这些模式在 ...
Ruby on Rails(简称Rails)是一个用Ruby语言编写的开源全栈Web应用框架。本书深入浅出地介绍了Rails 4的各种组件和功能,适合已经熟悉Ruby编程并希望深入了解Rails框架的开发人员。 #### 描述:学习ruby! 这句...
《Beginning Rails 3》是一本专为初学者编写的关于使用Ruby on Rails框架开发Web应用程序的入门指南。本书旨在帮助读者理解Rails的基本概念、工作原理以及如何利用Rails来构建高效、可扩展的Web应用。 #### 核心...
1. 初始化项目:通过`rails new mybook`命令创建新的Rails应用。 2. 创建资源:使用`rails generate controller Posts`生成控制器,再用`rails generate scaffold Post title:string content:text`生成模型和相关的...