Gem 推荐 rails-template 给大家, 极速构建一个全新又老道的 Rails 5 项目

lyfi2003 for 深圳市百分之八十网络技术有限公司 · 发布于 2016年6月29日 · 最后由 plugine 回复于 2016年8月20日 · 7915 次阅读
121
本帖已被设为精华帖!

如何极速构建一个新的 rails 项目

分享一个我们 80% 团队使用的 rails 模板, 能够极速构建一个符合国情的 rails 5 项目, 快速开发.

rails-template 是一个 rails 模板, 使用方法很简单:

rails new myapp -m https://raw.github.com/80percent/rails-template/master/composer.rb

特点: 快速, 最新, 最合国情.

注意: 适合于 rails 中级以上开发者使用.

它是一个很固执的 rails 5 模板, 不接受任何选项, 直接帮你应用了目前 "最好" 的组件, 应用以下技术栈:

  • Ruby on Rails 5
  • bootstrap 3
  • font-awesome
  • figaro
  • postgresql
  • slim
  • high_voltage
  • carriewave & upyun
  • sidekiq
  • kaminari
  • mina
  • puma
  • lograge

背景

对于一个 Rails 中级选手来说, 新项目都需要调整 Rails 缺省配置的很多东西. Github 也有很多 rails-composer 项目, 但支持 rails 5 与国内本土化的还没有一个.

我在 80% 团队管理几个项目后, 意识到这些重复工作很多, 把它们抽取出来, 写成一个 rails template. 还可以帮助到其他的团队快速构建新的基于 rails 5 的应用.

rails-template 做了哪些事情?

rails-template 固执地认为, 简单大众轻量是选择组件的最重要标准. 不提供选项, 默认集成, 但易于去除, 是 rails-template 的特点.

所以 rails-template 选择了以下组件:

  • rails 5

    不仅如此, 我们还默认打开了 turbolinks5action cable, 充分利用 rails 5 的快的优势.

  • bootstrap 3

    bootstrap3 依然是最流行的 UI 组件, 成熟而灵活, 值得集成. rails-template 将这一切都准备好了.

  • postgresql

    不用多说, 现在已经成了 rails 的标配了. rails-template 还处理好了 database.yml 的配置与发布.

  • carriewave & upyun

    图片处理几乎是 rails 应用的标配, rails-template 帮你配置好了这一切, 只需要将 application.yml 完善即可使用.

  • mina & plugins

    mina 轻而快速, 比 capstrano 更简单快速, 适合小巧的项目, 调整完 config/deploy/production.rb 后, 一个 mina setup 即可准备好发布环境, 十分方便.

  • slim & coffeescript & high_voltage & kaminari

    使用最简洁有效的方式组织你的 rails 代码, 是 rails-template 的目标

  • puma

    puma 已经是 rails 5 的标配, 不仅如此, 我们还准备了更为合理的 puma.rb 配置, 热布署十分简便即可实现.

  • rspec

    rspec, factory_girl 几乎是目前的测试项目标配, 我们直接将其配置好. 而且会自动随着其版本而更新.

总结

rails-template 是楼主几年 rails 经验总结, 也是 80% 团队近期几个项目的实践成果, 适合于有一定经验的 rails 工程师使用. 能够让你快速创建一个漂亮的 rails 初始项目, 尤其是在国内的项目, 能够减少大量的重复劳动, 自动应用很多最佳实践.

请访问 https://github.com/80percent/rails-template 开始你的 rails5 新项目之旅.

也欢迎你为 rails-template 添瓦, 补充使用文档, 使其成为国内构建 rails 应用的基石.

共收到 85 条回复
2994
weiwei5987 · #1 · 2016年6月30日
@good += 1

# TODO
# learn it
2099
hz_qiuyuanxin · #2 · 2016年6月30日 1 个赞

怎么不加入 devise 和 simple_form ?

3873
cqcn1991 · #3 · 2016年6月30日

原来角落也是你的?怎么感觉都是熟人...

121
lyfi2003 · #4 · 2016年6月30日 1 个赞

@hz_qiuyuanxin devise 跟 simple_form 不是很好的东西, 社区里也有一些吐槽, 在国内不是很需要. 即使需要也非常容易整合. 而移除比较麻烦. 所以不集成在内.

4755
martin91 · #5 · 2016年6月30日 1 个赞

每天通过 Ruby China 了解到亚飞都在忙着发大招啊

2 huacnlee 将本帖设为了精华贴 6月30日 09:56
2
huacnlee · #7 · 2016年6月30日

不能理解不用 simple_form 的想法,哪些表单反复写 HTML 不闲浪费时间么

2
huacnlee · #8 · 2016年6月30日

Bootstrap 可以用 4 了 😌

27
numbcoder · #9 · 2016年6月30日

pry 应该要成为标配吧?

121
lyfi2003 · #10 · 2016年6月30日

#8楼 @huacnlee 嗯 可以升到 4 了 👍 simple_form 我再考虑考虑.

2099
hz_qiuyuanxin · #11 · 2016年6月30日

#4楼 @lyfi2003 我一般都会引入 devise 和 simple_form,但具体哪个地方用着舒服就用,不舒服就不用,这不就是 Ruby 的理念么 😌

121
lyfi2003 · #12 · 2016年6月30日

#11楼 @hz_qiuyuanxin devise 在国内用的不会很多, 因为邮件登录不是首选, 这种情况下带来的问题比解决的问题更多, 所以不集成它. 想添加的话是很容易的, 去的时候反而麻烦点.

5508
jun1st · #13 · 2016年6月30日

#12楼 @lyfi2003 devise 有时候确实很麻烦,simple_form 还是不错的

121
lyfi2003 · #14 · 2016年6月30日

@jun1st 嗯是的, 欢迎 star 与 fork 改进它 😆

15420
pathbox · #15 · 2016年6月30日

好干货。

7848
lazybios · #16 · 2016年6月30日 3 个赞

👍 这两天也在弄这个 还有一个同类参考 https://github.com/RailsApps/rails_apps_composer

14132
rdongxie · #17 · 2016年6月30日

postgresql是rails标配?

121
lyfi2003 · #18 · 2016年6月30日

#16楼 @lazybios 嗯 起初我也一直用的这个 rails-composer, 不仅选项多, 处理完依然有不少组件要改. 所以才动手搞了本帖这个项目.

#17楼 @rdongxie 是的.

14132
rdongxie · #19 · 2016年6月30日

#18楼 @lyfi2003 我新手,介绍下mysql和postgresql在rails的优缺点呢。

14132
rdongxie · #20 · 2016年6月30日

#18楼 @lyfi2003 目前了解到的postgresql的类型有Array和Hash,这个用起来比较爽

15
huobazi · #21 · 2016年6月30日

建议加入 qiniu 等其他云存储服务

121
lyfi2003 · #22 · 2016年6月30日

#21楼 @huobazi 又拍的 backend 端可以用 qiniu :)

1107
jasl · #23 · 2016年6月30日

如果对设计要求太高 用simple_form定制起来太麻烦了...不如手写helper,即使自己封装form_builder也容易很多

24楼 已删除
14534
holysoros · #25 · 2016年6月30日 1 个赞

赞,rack-mini-profiler 要不要考虑下

23794
heyen · #26 · 2016年6月30日

😌 good

121
lyfi2003 · #27 · 2016年6月30日

#25楼 @holysoros 好建议, 先记下!

18852
freefishz · #28 · 2016年6月30日

刚好要开新项目,太及时了

8904
VincentJiang · #29 · 2016年6月30日

亚飞又放大招了 😍

121
lyfi2003 · #30 · 2016年6月30日

#28楼 @freefishz 欢迎使用 :) 有问题找我, 我尽快解决~ #29楼 @vincentjiang 这个是小招 :)

121
lyfi2003 · #31 · 2016年6月30日

#7楼 @huacnlee 已经添加了 simple_form, bootstrap 暂时用 3. 一是 simple_form 对其支持还要改进, 也等它正式版出来.

4755
martin91 · #32 · 2016年6月30日

#31楼 @lyfi2003 哈哈,那你是不是要顺便加个 rails_best_practice、brakeman 以及 dawn 啊,不过这些都是开发环境下跑的就好了。顺便想到的好用的 gem。

121
lyfi2003 · #33 · 2016年6月30日

#32楼 @martin91 好东西啊, 不过就不默认集成了, 需要的话自行加. 这一套差不多够了 😀

775
nouse · #34 · 2016年6月30日 3 个赞

人之宝石,我之垃圾。

5984
tim_lang · #35 · 2016年6月30日

#25楼 @holysoros 这玩意儿有坑,如果项目是做api的话,会导致不能完全禁用cookie。要自己hack下。

15999
embbnux · #36 · 2016年6月30日

赞,收藏了

4755
martin91 · #37 · 2016年6月30日

#33楼 @lyfi2003 是啊,你的方案是选择困难症患者的良药。

61
pzgz · #38 · 2016年7月01日

个人感觉,对于新手来说,也许很有帮助,对于老手来说,可能毫无帮助,但是无论对谁来说,思路是非常赞的,做项目的,每次新项目都重复一些东西,完全可以按照楼主的思路沉淀出适合自己的一个启动模板来,应该是很有帮助的,不过感觉还可以多一些东西,如果项目模式固定的话,比如针对Bootstrap Admin模板类型项目的话,还可以准备一些Scaffold模板

121
lyfi2003 · #39 · 2016年7月01日

#38楼 @pzgz 恰恰相反, 这个模板是为非初级工程师设定的. 当然可以依靠这个思路搞自己的项目模板. 但 rails-template 的目的就是选择一套 "最好" 的组件. 避免选择症. 所以选择 gem 会仔细考虑:

  1. 非常必须的 gem 才会被考虑
  2. 有类似选择时选择尽可能简单易懂的那一个
  3. 最多应用的

换言之, 它很 "固执", 但够快速, 有时候会强推作者的经验, 会有偏见. 但绝不坑你. 更适合中级工程师想进一步改进项目构建之用. 我觉得是符合 rails 的一贯思想的中国开发者版.

61
pzgz · #40 · 2016年7月01日

#39楼 @lyfi2003

"最好"二字太过牵强,当然你要一定这么认为也是你的自由,只是我个人感觉,你给你的这个模板,冠上了太多的个人感觉而已

121
lyfi2003 · #41 · 2016年7月01日 1 个赞

#40楼 @pzgz 是的, 所以我在一开头就说它是 "固执" 的. 正如 @martin91 所说, rails-template 是选择困难症患者的良药. 我觉得没必要在这里纠结这个高大上的 "思想". 如果有好的 gem 方案集成建议, 我们为何不探讨技术呢?

17580
seaify · #42 · 2016年7月01日

@lyfi2003 固执没错. 另外rails 5的api开发,会比grape舒服?

121
lyfi2003 · #43 · 2016年7月01日

#42楼 @seaify 看起来还不够完善. 不过很轻.

17617
pwra · #44 · 2016年7月01日

不错,我回来试试

115
zgm · #45 · 2016年7月01日

分享一个我们 80% 团队使用的 rails 模板

看成了 80% 的团队使用的 rails 模板 吓一跳..

7875
treasurelife · #46 · 2016年7月01日

老道 还是 老到?

15139
msg7086 · #47 · 2016年7月01日

postgres不会用,web服务器我选unicorn,看来是合不到一起了……

9800
pynix · #48 · 2016年7月02日

好好好。。。

14293
hww · #49 · 2016年7月02日

用户系统考虑把 clearance 加上吗, thoughtbot 出品,相比 devise 轻多了。

121
lyfi2003 · #50 · 2016年7月02日

#49楼 @hww 好主意, 考虑中: clearance issue

96
aksoft · #51 · 2016年7月02日

好兴奋。。。5.0来了。。

26232
samport · #52 · 2016年7月03日 2 个赞

slim模板的开发效率真的很高吗?

刚开始我也觉得slim的代码非常精干,严格的缩进排版能迫使程序员认真对待每一行HTML代码。不过在一个项目开发过程中,因为对js.slim中的js代码的混合写法实在搞不定,最终还是把所有代码都替换成了erb模板。

现在感觉还是erb要舒服很多,而且网上绝大多数样例都是erb的。

78
ashchan · #53 · 2016年7月03日 2 个赞

#52楼 @samport Slim 很多时候是对 HTML 编写的过度折腾。

121
lyfi2003 · #54 · 2016年7月03日

#52楼 @samport #53楼 @ashchan 明显是高的, slim 让你少码很多无效代码就够了. 反过来说, 混写 html 与 js 是个 bad smell 的事情, 避免掉, 如果实在避免不了, 那就当前文件用 erb, 混用 slim 与 erb 不是什么问题.

96
qx · #55 · 2016年7月04日

说下我的看法,devise 和 simple_form 依然需要 devise:@lyfi2003 你说的缺点固然有,但是用户系统对任何一个完整应用几乎是必备,除非你能找到一个更合适的替代,另外你说的国内用户较少,可能也未必吧,写代码的有几个不会翻墙,连这点信息都获取不到真不如改行. simple_form这个大家已经说明 另外 slim这个东西我真心不喜欢,通用性就是个大问题,唯一的好处就是熟悉之后你自己看着舒服而已,仅仅是你自己,当你整合其他代码的时候会导入一堆问题,而且这些问题还必须转成slim格式的文件你才能去debug.除非哪一天它成为官方标配,否则,还是算了吧.等哪天你想rollback的时候,一堆slim文件要改,你会后悔无比.

78
ashchan · #56 · 2016年7月04日 1 个赞

#54楼 @lyfi2003

明显是高的

这个见仁见智,我用 Rails 近十年,ERB,Slim 和 Haml 的项目都经历过不少。实话说,我个人完全不觉得另外两个在编码效率上有过人之处。到是维护升级和解决一些额外的小毛病上会浪费时间。

96
perect · #57 · 2016年7月04日 1 个赞

@lyfi2003 问下那个项目的权限管理你打算用什么gem啊,还有一个小建议,那个gemfile中的gem能不能加个备注啊,我觉得这样一般阅读比较好

2973
small_fish__ · #58 · 2016年7月04日

#56楼 @ashchan

我的感觉是这样的

  1. 如果从 0 开始写 slim,如果非常熟悉,那么肯定比 erb 快,少些很多 div,而且 slim 有空白字符压缩的功能
  2. 如果通过前端写好了的html 模版再转换成 slim 就有点多事了,还是用 erb 简单省事。
78
ashchan · #59 · 2016年7月04日 1 个赞

#58楼 @small_fish__ 加快编写速度可以用 Zen Coding;直接拿现成的 HTML 来改的情况还是非常多的:

  • 设计师提供的原始 HTML
  • 购买的 Theme
  • 设计软件生成的 HTML
  • 从 CSS 框架拷贝来的 HTML 样例

关键的一点,这是一层而外转换,需要 team 去学习一种额外的语法。如果项目中的设计师和开发者人来人往,就是额外的开销。

2973
small_fish__ · #60 · 2016年7月04日

#59楼 @ashchan 认同

我现在的情况是自己一个人能搞定,就 slim, 如果有你说的情况,就 erb 了

973
debugger · #61 · 2016年7月04日 1 个赞

谢谢,fork 之去掉 upyun 😸

121
lyfi2003 · #62 · 2016年7月04日

#61楼 @debugger 可一并去掉 application.ymlapplication.yml.example 中的配置与 config/initializers 中的即可 :)

121
lyfi2003 · #63 · 2016年7月04日

#57楼 @perect 你可以选择集成 cancancanpundit. 看自己需求. 关于你提的加注释的方式, 我倒觉得有时间把 wiki 完善一下更好更清晰. 已经列在 README 的 TODOLIST 里了.

#55楼 @qx devise 不会集成, 已经考虑过了. simple_form 早就集成了, 不多说了. 至于 slim 是见人见智的事, 不再调整了. @ashchan 谢谢你的经验分享.

96
alvin2ye · #64 · 2016年7月08日

figaro vs dotenv

121
lyfi2003 · #65 · 2016年7月08日

#64楼 @alvin2ye 两个差不多, 相对来说, figaro 更安全. rails-template 集成的方式更安全.

96
alvin2ye · #66 · 2016年7月09日

#65楼 @lyfi2003

  1. 什么叫做 "rails-template 集成的方式", 怎么定义?
  2. dotenv 为什么会造成"rails-template 集成的方式" 的安全问题, 具体体现在哪里?
121
lyfi2003 · #67 · 2016年7月09日 1 个赞

#66楼 @alvin2ye 对于配置文件, 安全仅有一点: 不要提交任何敏感信息到服务端. 所以 rails-template 是添加了一个 config/application.yml.example, 随后由开发者自行复制一份为 config/application.yml, 而此文件在 git 中是忽略的. 这是 rails-template 的集成方式.

在不同的生产环境, config/application.yml 由发布者在 mina setup 时自行配置即可. rails-template 在随后的发布过程自动软链接它, 保证每次新的发布使用同一份配置. 简明清晰的流程.

dotenv 建议开发者提交一些配置到 .env, 和提交 .env.production 之类的, 不是配置的最安全做法, 只要你提交过敏感, 一旦源代码泄漏, 就有黑客能轻易攻击你. 所以我说安全性会降低. 我在上述的解决方式中是一种简明清楚的手段. 这也是很多开源项目类似的手法, 例如 ruby-china.

相对来说, 我会选择简明, 安全的手法去集成. 于是使用了 figaro

96
alvin2ye · #68 · 2016年7月09日

#67楼 @lyfi2003

我明白你的意思了.

但这个和dotenv 无关. 我也不觉得作者的意思是让你提交敏感信息在 .env.production 中, 你同样可以有个 .env.production.example. 这个和哪个Gem 安全无关.

68
gazeldx · #69 · 2016年7月12日

devise和simple_form这两个东西,我个人不喜欢。 devise因为复杂度,可能会带来问题,导致学习成本升高。 simple_form的那些伎俩程序员完全可以用自己的方式自己实现下,写在helpers中。

121
lyfi2003 · #70 · 2016年7月12日

#69楼 @gazeldx 嗯, 基本同意, 但 simple_form 替换成本很低, 很适合写后台用, 所以还是可以接受的.

96
zengfengbo · #71 · 2016年7月14日

赞。

7386
sefier · #72 · 2016年7月15日

#67楼 @lyfi2003 dotenv 明明在首页清楚地写道:

Credentials should only be accessible on the machines that need access to them. Never commit sensitive information to a repository that is not needed by every development machine and server.

简单翻译

凭证应当遵循“谁访问,谁存储”的原则。永远不要将并非开发所需要的敏感信息提交到代码仓库中。

怎么在你口中就成了:

dotenv 建议开发者提交一些配置到 .env, 和提交 .env.production 之类的, 不是配置的最安全做法, 只要你提交过敏感, 一旦源代码泄漏, 就有黑客能轻易攻击你. 所以我说安全性会降低.

我就是遵循dotenv的建议,将敏感信息存储在部署服务器上,将非敏感信息提交到代码库。你自己实践方式不对,却说作者建议你把.env.production提交到仓库,这样不妥吧?

4594
grantbb · #73 · 2016年7月15日

#22楼 @lyfi2003 不是太明白是什么意思,能够解释一下?谢谢

4594
grantbb · #74 · 2016年7月15日

#50楼 @lyfi2003 用过clearance,出发点是好,不过随着需求的变化(需求变多),后来发现devise大多时候还是比较合适,而且网上资源很丰富。

4594
grantbb · #75 · 2016年7月15日

@lyfi2003 顺便问一下minitest是否还保留着,我现在更加喜欢minitest来写测试。基本上能用Rails自带的就不选其他的。之前也是slim的粉丝,让设计都学会了slim,现在我还是用erb了。

121
lyfi2003 · #76 · 2016年7月15日

#72楼 @sefier 你怎么实践都可以. 我这里采用 figaro 达成一样的效果即可. 而且布署时也提供了最佳实践. #75楼 @grantbb 这里只提供一种 rspec 测试方案, 不适合就不要选了. 建议用 rails5 自带的生成器, 已经很符合你的口味了~

77楼 已删除
14812
laozhongyi · #78 · 2016年7月16日 1 个赞

#34楼 @nouse

nouse: 人之宝石,我之垃圾。

有大量的外包团队每天都在写重复的内容,这个模板可以减少很多工作量,节省大量的前期工作。对你没用,不发表评论就可以了, 为什么要说 垃圾 呢。你总是通过惊世骇俗的观点来刷存在感吗?

动不动就说别人遇到的问题简单,一堆反问句质问别人,嘲笑别人的英语。

  1. 这不是常见面试题吗?最傻的办法得出结果以后循环一下都不会吗?
  2. 问题来了,为什么用Ruby做ETL?
  3. @helperhaps "Jiguang Push"好典型的中国式英语
  4. 说Rails是理念的,这理念至少落后5年了

你技术实力也很硬,不如像 nightire 多分享一些内容,少一些吐槽。社区缺的是建设者,而不是评论家。

11314
Zoker · #79 · 2016年7月18日

bootstrap fontawesome之类的东西我还是比较喜欢手动引入。

4594
grantbb · #80 · 2016年7月19日

感谢楼主的分享,fork后做了如下改动:

  1. 可以选择使用rspec或者minitest
  2. 可以选择是否使用simple_form
  3. 把upyun改成了七牛
  4. 加入了pry, better_errors 和 rack-mini-profiler gem

喜欢的拿走,不谢! 创建应用: rails new myapp -m https://raw.github.com/bingxie/rails-template/master/composer.rb

github地址: https://github.com/bingxie/rails-template

96
qqrrm · #81 · 2016年7月19日

使用 @lyfi2003 的脚本创建项目后,rails s运行会出错。我使用的vagrant,ubuntu 64位 16.04,ruby 2.3.1,rails 5.0.0 应该是minitest的问题,我已经参考网上说的,在Gemfile中添加了require 'minitest',在错误的rb文件中,添加了require 'minitest/autorun'等等的方法,但是还是会出错。不知道问题在哪里。

/home/ubuntu/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0/lib/active_support/test_case.rb:16:in <module:ActiveSupport>': uninitialized constant Minitest (NameError) from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0/lib/active_support/test_case.rb:15:in' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/test_unit/railtie.rb:17:in block in <class:TestUnitRailtie>' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/initializable.rb:30:ininstance_exec' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/initializable.rb:30:in run' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/initializable.rb:55:inblock in run_initializers' from /home/ubuntu/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:228:in block in tsort_each' from /home/ubuntu/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:350:inblock (2 levels) in each_strongly_connected_component' from /home/ubuntu/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:431:in each_strongly_connected_component_from' from /home/ubuntu/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:349:inblock in each_strongly_connected_component' from /home/ubuntu/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in each' from /home/ubuntu/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:incall' from /home/ubuntu/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in each_strongly_connected_component' from /home/ubuntu/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:226:intsort_each' from /home/ubuntu/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:205:in tsort_each' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/initializable.rb:54:inrun_initializers' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/application.rb:352:in initialize!' from /home/ubuntu/rails_project/test11/config/environment.rb:5:in' from /home/ubuntu/rails_project/test11/config.ru:3:in require_relative' from /home/ubuntu/rails_project/test11/config.ru:3:inblock in

' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/rack-2.0.1/lib/rack/builder.rb:55:in instance_eval' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/rack-2.0.1/lib/rack/builder.rb:55:ininitialize' from /home/ubuntu/rails_project/test11/config.ru:in new' from /home/ubuntu/rails_project/test11/config.ru:in' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/rack-2.0.1/lib/rack/builder.rb:49:in eval' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/rack-2.0.1/lib/rack/builder.rb:49:innew_from_string' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/rack-2.0.1/lib/rack/builder.rb:40:in parse_file' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/rack-2.0.1/lib/rack/server.rb:318:inbuild_app_and_options_from_config' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/rack-2.0.1/lib/rack/server.rb:218:in app' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/server.rb:59:inapp' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/rack-2.0.1/lib/rack/server.rb:353:in wrapped_app' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/server.rb:124:inlog_to_stdout' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/server.rb:77:in start' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/commands_tasks.rb:90:inblock in server' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/commands_tasks.rb:85:in tap' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/commands_tasks.rb:85:inserver' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/commands_tasks.rb:49:in run_command!' from /home/ubuntu/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands.rb:18:in' from bin/rails:4:in require' from bin/rails:4:in'

121
lyfi2003 · #82 · 2016年7月19日
24242
onenewlife · #83 · 2016年7月27日

good

1553
Peter · #84 · 2016年7月27日

@lyfi2003 楼主能教我们如何自己写模板吗?

121
lyfi2003 · #85 · 2016年7月27日

@peter 可以参考一下项目里的 composer.rb

86楼 已删除
87楼 已删除
20103
helloyokoy · #88 · 2016年8月04日

我觉得 postgres 不如 mysql 在国内应用的广

96
plugine · #90 · 2016年8月20日

https://www.80percent.io/sidekiq 哈哈,sidekiq地址默认了。。。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册