没看错的话,index
在 controller
外了。。
另外,如果有 index.html.erb
,可以没有 对应的 action
外观最好的:http://semantic-ui.com/modules/sidebar.html 试过几次从没成功的:http://srobbin.com/jquery-plugins/pageslide/
不考虑兼容的话可以看看这个自己写:http://tympanus.net/Tutorials/FullscreenBookBlock/
今天刚折腾完,Rails4 主要是这里 出问题,其他的基本和 3 一样。
Gemfile
里加入 gem 'protected_attributes'
application.rb
加入 config.active_record.whitelist_attributes = false
modal 不知道是不是用法有问题,好像有内存泄漏。
直接用 gem install 安装的应该是不兼容的,github 里有一个 rails4 的分支,可以试试那个分支。。
gem 'activeadmin', :git => 'git://github.com/gregbell/active_admin.git', :branch => 'rails4'
watir
1.你认为人力成本比硬件成本低? 2.你认为部署成本比开发成本高?
klass = Module.const_get('Client')
#2 楼 @evil850209 最常见的做法是用 service 共享数据,所有的 $scope 都继承自 $rootscope,所以不能随便向里面加数据。这是我之前的应用: service:
angular.module('docat.services', ['ngResource'])
.factory '$shared', ($doCat, $routeParams) ->
groups: {}
per: ->
if screen.height <= 768
8
else
14
# ...
controller:
@DocsViewController = (...., $shared, ...) ->
#...
$shared.per()
用 service、$rootscope 或者 $on
从 FP 的角度来看,无括号的方法调用相当于取值的过程,中间没有副作用改变改变程序的状态,所以不需要分辨取值还是调用方法,因为结果都是一样的,但是 ruby 并没有这种约定。这方面 scala 就做得不错,有副作用的函数约定加上括号。
我也发一段之前写的代码吧,就是用的 resolve,应该还能跑,规不规范得另说...
when('/', templateUrl: '/assets/docatapp/templates/docs_view.html', controller: @DocsViewController, resolve: @user2esolve)
@user3esolve =
redirect: ($route, $location) ->
@path = $route.current.params.path
$location.url @path if @path?
data: ($q, $doCat, $route, $shared) ->
deferred = $q.defer()
unless @path?
params = $route.current.params
page = if params.page then params.page else 1
per = $shared.per()
$doCat.doc.query {page: page, per: per}, (data) ->
deferred.resolve(data)
deferred.promise
@DocsViewController = ($scope, $location, $routeParams, $shared, data) ->
...
你是想要在 ng-view 加载完成后拿 ng-view 里面的东西又不污染 controller?还是...?
事实上有人做个类似的实验,20W 条记录分页操作,mysql, postgresql, sqlite 都不怎么理想... http://obmem.info/?p=493
只要在最后返回一个 Object 就可以了,方法写在 Object 里面。
Active Model Serializer 也是可以做的,而且层次更清晰。另外,对于公共逻辑 AMS 处理起来很简洁的,比如分页,我这么做就行了:
class PaginationSerializer < HasharraySerializer
def as_json(*args)
array= super(*args)
hash = @options[:hash]
hash.merge!(results: array, pagination: pagination)
hash
end
def pagination
hash = {}
hash[:current_page] = object.current_page
hash[:first_page] = object.first_page?
hash[:last_page] = object.last_page?
hash
end
end
class DocumentSerializer < ActiveModel::Serializer
attributes :id, :content, :title, :is_public, :shared_id, :created_at, :group_id, :deleted_at
end
render json: @documents, serializer: PaginationSerializer
出来的 json => { result: [docs...], pagination: {} }
运维脚本其实用粗粒度的模块划分也能搞定的吧 = = 反正除了迫不得已或这服务器就是跑 rails,否则一般不会上 ruby 的
用 shell 或 ruby 这类语言的脚本只要用 vi 或 nano 改一下就能立刻跑起来。用静态语言,比如 Java。我会先打开 eclipse,然后改,编译,打包 jar,上传....
#3 楼 @Sunnyroger 你这个例子我记得是声明内嵌文档用的。 楼主的代码好像没错,mongodb 没怎么用了不大清楚,等楼下解答。