我这边电商系统就是参考了一下 spree 的表结构设计,但也根据自己的业务需求做了很多改变。归根到底,业务需求差别太大了。
已经升完
等前段技术
https://github.com/javan/whenever 直接使用 crontab 吧
PostCSS and Rework 这块没有接触过,其他还是有所耳闻
1 228 9.60404% gst
2 202 8.50885% rake
3 193 8.12974% rails
4 175 7.37152% git
5 159 6.69756% cd
6 109 4.59141% cap
7 108 4.54928% ssh
8 97 4.08593% bundle
9 81 3.41196% ll
10 78 3.28559% gcmsg
11 76 3.20135% gp
12 71 2.99073% rubocop
13 68 2.86436% gup
14 50 2.10615% brew
15 39 1.6428% egret
16 38 1.60067% cat
17 37 1.55855% mix
18 36 1.51643% ember
19 35 1.4743% guard
20 31 1.30581% vi
应该可以通过在 route 中设置 constraints
方法来判断域名
参考http://guides.rubyonrails.org/routing.html#request-based-constraints
http://awesome-ruby.com/ is awesome
#16 楼 @chairy11 可以使用这个 gem 来做静态页面 high_voltage
rvm use 2.2.1 --default
如果还不行,就是要看一下 path 加载,有没有加载 rvm 了
07
#39 楼 @blacktulip view 这块在 ember2.0 都会由 compoent 来代替。 controller 和 route 区别,说说我的理解,大家交流一下。
1、route 是准备页面数据的地方,在这里可以根据 url 的 params 查询数据,然后放到 controller 的 model 里。
2、controller 里对获取的 model 数据进行进一步的处理后 render 到 template 显示,比如说要对列表数据进行过滤排序,都是在 controller 进行的。
3、ember 的 action 有 popup 的机制,比如说在/posts/new 这个页面上进行调用'save',会先去 controller/posts/new 找,然后去 routes/posts/new、routes/posts、routes/application 进行查找。 所以说,如果你有个 action,比如是‘return-to-post-index',返回文章列表页面,那么可以在 routes/posts 这个路由上进行设置,然后在/posts/下面的所有页面都可以调用'cancel'这个 action,ember 会自动找到 action 定义。当然,可以在 popup 过程中通过 return false 在中断查询,达到自定义的目的
#38 楼 @ery 你可以参考一下我最近做的 DEMO,
https://github.com/foxzool/deyeen-api
https://github.com/foxzool/deyeen-webapp
api 使用 grape + JSONAPI, doorkeeper 提供 oauth2 provider
web 端使用 semantic-ui 做界面,用 simple-auth 插件登陆验证
:plus1:
cookpad 自己开发了switch_point
插件来做读写分离 https://github.com/eagletmt/switch_point
#5 楼 @cqcn1991 看一下pundit
的 README,在不使用scope
的情况下,就是一个很纯粹的 class,逻辑很很简单。
class PostPolicy
attr_reader :user, :post
def initialize(user, post)
@user = user
@post = post
end
def update?
user.admin? or not post.published?
end
end
可以直接通过 PostPolicy.new(current_user, @post).update?
来做权限判断。
pundit
就是在上面的逻辑上再包装了一层 controller\view 的 helper 方法。
用这个 gem https://github.com/elabs/pundit
@book = Book.find(params[:id])
authorize @book, :update?
推荐一本 ember-cli 的书 https://leanpub.com/ember-cli-101
去年尝试在新项目中使用 angular,写了一版 DEMO 后放弃了,最终选用了 ember.js。 原因:
先写测试,再考虑重构
简单回答
gemfile
,如没有指定版本号并没有gemfile.lock
,会自动从 source 安装最新版本。说说两个 tips
1、在 route 用使用 nested resources 时,将 path 里的 id 直接写为 model_name_id,这样就不用在 route 里再定义一次 model 的调用
this.resource('users', function () {
this.route('detail', {path: '/:user_id'});
this.route('edit', {path: '/:user_id/edit'});
});
2、如果要 html escape,直接用三个尖括号 {{{model.body}}}
还没在生产环境试过。不过看网上资料,主键的字段类型设置引起不同的性能变化 postgresql 的 uuid 比 text 省空间 http://simononsoftware.com/how-to-store-uuids-in-postgresql/ SO 上关于 mysql 的两篇文章 http://stackoverflow.com/questions/412341/how-should-i-store-guid-in-mysql-tables http://stackoverflow.com/questions/2365132/uuid-performance-in-mysql/2365176
#20 楼 @ywjno http://www.inside.com.tw/2012/04/14/cookpad-recruiting 看样子只用了 Mysql 和 Memcached Keep it simple