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!
分享到:
相关推荐
Rails::API 可以用来创建只提供API服务(API-Only)的 Rails 应用,不需要整个Rails 栈和模板生成。也可以用来编写在 Web 应用和客户端之间进行数据共享的后端程序,允许开发者创建接受 JSON 格式数据并以传统 RoR ...
替换为ember-cli / rails项目: Crambear Crambear是一个用Rails和EmberJs编写的闪存卡应用程序。 其目的是提供一个实际的Ember.js应用程序的简单示例。 非平凡的意思是,有些东西将不仅仅是1或2个模型,而除了...
生成项目的Rails凭证: EDITOR=true bundle exec rails credentials:edit 更改项目的名称。使用提交作为参考 另外,不要忘记从package.json文件更改名称和版本 执行Rubocop命令,因此linter的工作流不会失败: ...
Rails 3 项目应该在他们的 Gemfile 中指向那个标签。 入门 将宝石添加到您的Gemfile gem 'cmsimple' , github : 'modeset/cmsimple' 运行安装生成器 rails g cmsimple:install 模板 CMSimple 模板只是视图。 ...
部署示例项目“ Rails 5 App” 如何部署Rails 5 App 1.克隆部署工具并安装gem git clone https://github.com/DeployRB/DeployTool.git cd DeployTool gem install bundler bundle install 2.复制模板
此外,通过在 Github 上发布文档源,多位有实践经验的开发者可以通过与共同编写,分享每个 Rails 项目开发的诀窍 在(Rails Guide离线免费课程)中,对讲座的重要部分进行了摘录和中间讲解。 希望本书能帮助新接
在Fastui中,您只需要用普通的Ruby编写域类就可以将Web应用程序投入生产。 该项目动摇并使用了MIT-LICENSE。配置例如,如下所示的视图语法:默认情况下,视图在文件config / initializers / fastui_config.rb中进行...
Thebes希望您可以手工编写Sphinx配置文件,并且对Sphinx有丰富的了解,但是提供了配置文件和模板以简化此过程。安装要使用Thebes,只需将其添加到您的Gemfile : gem 'thebes'# Or pin Thebes to git# gem 'thebes'...
Scribble 是用 Ruby 编写的,可以在任何 Ruby 或 Ruby on Rails 项目中使用。 它需要一个由文本和 Scribble 标签组成的模板文件,并将其转换为文本。 Scribble 可用于转换任何纯文本格式,如 HTML、Markdown、JSON...
在组织项目时,设计是至关重要的部分。 即使它具有最出色的核心功能,如果设计不令人满意,则用户极有可能不使用它。 而是,即使它缺乏功能,看起来美丽的设计也更适合于吸引用户的可用性。 当然,同时具有设计和...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
这是我用注册、登录和 GET /contacts 路由编写的带有 Flux 的 React 模板,这些路由通过护照和 JWT 进行了身份验证。 我有一个匹配的存储库,其中包含带有 Ruby on Rails 的后端 API: 。 我还有一个匹配的存储库,...
商业吉基尔主题 Business Jekyll主题是设计用于中小企业的主题。 它是由的团队设计的。 然后, 将主题移植到... 如果您尚未安装Ruby on Rails,则可以遵循我为Windows,Linux和MacOS编写的(包括安装视频)。 使用命
Ruby / Rails助手安装方式将此行添加到您的应用程序的Gemfile中: gem 'frontend_helpers' , github : 'Grupo-AFAL/frontend-helpers' , branch : 'main' 然后执行: $ bundle install用法待办事项:编写如何使用...
Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式...
Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式...
Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式...