`
fsword
  • 浏览: 168180 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

rails 3 下面编写项目模板

阅读更多

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!

3
7
分享到:
评论
2 楼 xiangchao027 2012-11-04  
我能明白,因为太嫉妒了!
1 楼 alang 2011-05-24  
非常棒的心得,用得好,能玩出花了。我就不明白那些点踩的人是什么心态!

相关推荐

    Ruby-开箱即用的Rails项目模板

    标题中的"Ruby-开箱即用的Rails项目模板"指的是一个预先配置好的Rails项目结构,它包含了特定的设置和集成,以便开发者能够快速启动新项目,无需从零开始配置各种依赖和工具。这种模板通常会包含最佳实践和常用库,...

    Rails项目源代码

    这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何利用Rails的强大功能来创建一个允许用户上传、分享和浏览图片的应用。 1. **Rails框架基础**: Rails的核心理念是DRY(Don't...

    ruby on rails 3 tutorial.pdf

    在这个阶段,你将学习如何使用命令行工具来创建一个新的Rails项目,并理解Rails的目录结构及其各自的作用。 接下来,你将深入到MVC架构中,学习如何创建数据模型(Models),这是Rails应用程序的核心部分,用于与...

    rails的经典学习项目

    Rails项目通常包括数据库设计、控制器逻辑、视图模板以及模型业务规则等多个部分,这都是开发者在深入学习过程中必须掌握的核心概念。 描述中重复提到"ruby on rails打包的程序",这意味着提供的压缩包可能包含了一...

    Ruby Rails 3 Linda

    5. **生成器**:Rails提供了一系列命令行生成器,如`rails new`创建新项目,`rails generate controller`创建控制器,`rails generate model`创建模型等,这能快速构建应用结构。 6. **ActiveRecord查询接口**:...

    rails3-railsconf2010

    在Rails 3中,gem bundle的概念被正式引入,允许开发者将项目依赖的gem封装到一个bundle中,这有助于项目的可移植性和版本控制。这里提到的“bubble”可能指的是gem bundle的自包含特性,即它们可以在项目之间轻松...

    Rails 101 入门电子书

    - **作品**: 除了《Rails 101 入门电子书》外,xdite还编写了其他几本书籍,如《Maintainable Rails View》、《Lean SaaS》以及《Land Dream Rails Job》等。 - **特色**: 这本书是中文世界唯一一本基于Rails 4.0.0+...

    Rails

    2. **Active Record**:这是Rails中的ORM(对象关系映射)库,它允许开发者用Ruby代码操作数据库,无需编写SQL语句。 3. **Action Controller**:负责处理HTTP请求并调用模型来执行业务逻辑,然后将结果传递给视图...

    使用Aptana+Rails开发Rails Web应用(中文)

    Aptana是一款强大的集成开发环境(IDE),尤其适用于Rails项目的开发,它提供了丰富的特性来提升开发效率。本教程将详细介绍如何使用Aptana与Rails结合,创建一个功能完备的Web应用程序。 首先,我们需要安装Aptana...

    rails指南 中文版

    Rails提供了一套强大的模板系统,使得开发者可以使用ERB(Embedded Ruby)或HAML等语法来编写视图。 4. **Routes**:Rails的路由系统负责将HTTP请求映射到相应的控制器动作。通过配置routes.rb文件,开发者可以定义...

    Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)

    Rails是Ruby语言的一个著名Web应用框架,以敏捷开发和“约定优于配置”...通过对这些版本的源码进行分析和学习,开发者不仅可以提升对Rails框架的理解,还能在实际项目中运用这些知识,编写出更高效、更安全的Web应用。

    Rails相关电子书汇总

    7. **Gemfile和Bundler**:Rails项目通过Gemfile管理依赖,Bundler工具确保在开发环境中安装正确的gem版本。 8. **ActiveSupport**:包含许多实用的工具类和模块,如时间戳处理、字符串处理等,它们被广泛地应用于...

    中文版rails教程

    学习Rails的过程中,除了阅读文档,还可以参考在线教程、视频课程、社区论坛和开源项目,以加深理解和实践。Rails社区活跃,有许多优秀的资源可以帮助初学者快速上手。 总的来说,Ruby on Rails是一个强大的开发...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    - **视图文件**:通常使用ERB模板语言来编写视图文件,这些文件位于`app/views`目录下。 #### 八、组件 - **定义**:组件是可重用的代码块,用于封装重复使用的UI元素或逻辑。 - **使用**:在视图文件中通过`...

    rails magazine issue 3

    设计模式是解决常见软件设计问题的模板,能够帮助开发者编写更加可维护、可扩展的代码。Observer 模式允许对象在状态变化时通知其他对象,而 Singleton 确保一个类只有一个实例,并提供一个全局访问点。这些模式在 ...

    The Rails 4 Way

    Ruby on Rails(简称Rails)是一个用Ruby语言编写的开源全栈Web应用框架。本书深入浅出地介绍了Rails 4的各种组件和功能,适合已经熟悉Ruby编程并希望深入了解Rails框架的开发人员。 #### 描述:学习ruby! 这句...

    Apress.Beginning.Rails.3

    《Beginning Rails 3》是一本专为初学者编写的关于使用Ruby on Rails框架开发Web应用程序的入门指南。本书旨在帮助读者理解Rails的基本概念、工作原理以及如何利用Rails来构建高效、可扩展的Web应用。 #### 核心...

    Ruby on Rails入门例子

    1. 初始化项目:通过`rails new mybook`命令创建新的Rails应用。 2. 创建资源:使用`rails generate controller Posts`生成控制器,再用`rails generate scaffold Post title:string content:text`生成模型和相关的...

Global site tag (gtag.js) - Google Analytics