Rails [调查] Angularjs 与 Rails 的整合的相关 Gem 大家都用哪些? 感觉有哪些不满的?

lyfi2003 · 2014年10月10日 · 最后由 lyfi2003 回复于 2014年10月11日 · 4826 次阅读

准备写一个与 Angularjs 相关的的 Rails Gem 包, 来让 Rails 下的 Angularjs 开发更爽.

所以想问问大家对目前的 Angularjs 相关的 Gem 有用过哪些? 有哪些不满?

为什么要写一个 Angularjs 相关的 Rails Gem

我一直用 angularjs-rails 这个 Gem 来开发 Angularjs 类应用, 只能说是刚刚够用. 很多东西需要从零开始:

  • 目录结构脚手架
  • 没有集成测试框架
  • 有很多小坑需要注意, 最好形成一个最佳实践来简化.

所以, 想进一步提高 Rails 对于复杂前端的适用范围, 让 Rails 开发更爽一点.

调查目的

想了解大家对 angularjs 使用过相关 Gem 的感受, 增加一些更 cool 的需求点, 让 Rails 开发更爽一点.

共收到 13 条回复

如果要用到 Angular/Ember 这种量级的框架,我就不选择整合进 Rails 了,而是直接分离,这样最爽。 不过最近有一个新出的东西,好像叫 Webpack 吧如果没记错的话,挺酷的,貌似可以让整合变得很爽。

@nightire 你说的分离是指怎么分离? 代码直接分离成两个项目还是?

我个人的意思是, 从前后端上逻辑是分离的, 但利用 Rails 的 Asset Pipe 来进行打包, Webpack 我粗看了一下, 跟 Asset Pipe 打包功能上是重合的. 在依赖处理上跟 Angularjs 是重合的.

直接

source 'https://rails-assets.org'

gem 'rails-assets-angular'
gem 'rails-assets-angular-animate'
gem 'rails-assets-angular-bindonce'
gem 'rails-assets-angular-cookies'
gem 'rails-assets-angular-faye'
gem 'rails-assets-angular-i18n'
gem 'rails-assets-angular-loading-bar'
gem 'rails-assets-angular-mocks'
gem 'rails-assets-angular-mousewheel'
gem 'rails-assets-angular-resource'
gem 'rails-assets-angular-route'
gem 'rails-assets-angular-sanitize'
gem 'rails-assets-angular-touch'

generator 一开始自己写,最近也不怎么用了,反正前端代码越少越好

测试用teaspoon

CSRF替换为angular的方式

class ApplicationController < ActionController::Base
  after_action :set_csrf_cookie_for_ng

  def set_csrf_cookie_for_ng
    cookies['XSRF-TOKEN'] = form_authenticity_token
  end

  def verified_request?
    request.headers['X-CSRF-Token'] = request.headers['X-XSRF-TOKEN']
    super
  end

然后好像没啥坑了吧,想不起来了

赞成分开来写,新建一个ngapp的文件夹管理angular项目,用pipline打包。

#3楼 @comensontin 这样是可以的, 就是对新开的项目不够友好, 需要自己去定制一些标准.

#5楼 @nightire OK, 明白你的意思. 这确实是一个大型项目的趋势, 让各自的人员更专注自己的工作. 不过我想, 还有更多小型一些的项目, 采用 Angularjs + Rails 仍然是一个不错的选择. 这时, 能更快速构建基本的模块还是蛮有意义的. 这是我的思路.

在我看来,一些时候,代码的组织是一个逐渐演化的过程。我的做法一般是ngapp->rails engines->separately frontend package,在前两个阶段,grunt,bower和nodejs可以被嵌入到rails项目,并独立测试。但最后,还是要分开的。

可以用Yeoman单独开发前段代码,Rails只只负责开发API。到最后用Yeoman来打包前段代码,并把相应的打包好的代码,包括 index.html, application.js, application.css 作为静态文件直接放到 rails项目中的public目录下,让web服务器直接处理

#5楼 @nightire +1 我们之前的项目,现在的新项目,都是前后端完全分离成独立的 project 来做 硬要融合进 rails 反而会带会额外的问题 yeoman 的 npm + bower + grunt 的组合非常强劲给力

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