新手问题 如何把 sinatra 单一的文件拆成如下图片所示的文件结构?呵呵

zlfera · 2013年05月01日 · 最后由 zhangyi2099 回复于 2013年05月03日 · 3353 次阅读

不知道怎么在 config.ru 里面设置成如图所示的文件结构。请大侠帮忙!

SY 过多导致视觉模糊……

@Rei就是像上面的类似的目录结构,里面的文件就不管了,呵呵

helper models 只要把目录加到 $: 里就好了。 controllers 可能要在 config.ru 里 mount 一下。

Padrinorb 是一个基于 Sinatra 的框架,并且默认的项目文件结构就是如此,何不考虑直接用 Padrinorb? http://www.padrinorb.com/

这不是 rails 吗

@doitian那要怎么 mount 呢,我不之道怎么弄

@lgn21st我也知道 padrino 不过感觉它更新不是很快,我上次安装还有一些小毛病,呵呵

@valentine其实 sinatra 定制很灵活的只是我还不怎么会呀,

@lidashuang 我只是希望 sinatra 结构比较清晰一点,不需要 padrino 那样的

首先说点废话,你这个太复杂了些,反而不像 sinatra。不如直接 padrino 或者 rails。 我自己分拆的方法比较弱,直接 require,写个循环,循环去载入 controller 里面的文件,文件可以取比较别致的名字,比如 modlename.mod.rb,这样只要遍历对应的目录文件就可以了。然后在主文件里面挨个 use 或者自己写个方法来 use。 public、views 的话直接 settings 就可以了,helper 没有存在的意义,写个 gem 就可以。还有 lib 也是一样的。 config.ru 主要是给 rack 用了。 model 的话,看你心情了,也看你用不用其它 gem 了。分法也差不多。

对了,还有一些比较烦人的配置问题,可以直接把一些设置写进 sinatra base 类里面去,这样就不怕变化了。

我自己的方法,刚学 sinatra 的时候总想分个层,现在我觉得如果不是大项目没必要分那么多。大项目的话,我也不太想用 sinatra。 弄个头像吧

@vincenttone 我也是总是 require,不过总是 require 也太麻烦了,

#8 楼 @zlfera 那看看它是怎么实现的,抄过来怎么样?

#13 楼 @zlfera 不是每次都是 require 呀,约定高于配置。我的意思是原理就是 require,做一个 autoloader 就可以了,按照一定的命名规则去自动 require 和 use。

jump start sinatra

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