rails 4 也可以用 actioncable 的呀。
感觉是各有所长啊。grape 可以不用写文档。
#3 楼 @42thcoder
对外显示变了,那就改变了初衷了,放在一个 entity 文件下的初衷。
delegate
这个的确是不错,蛮好的,不过再多一层的关联,处理起来就显得 () 方便一些了(对于grape
的delegate
没有使用过,或许可以更简便)。
至于这种方式:
class Customer < Grape::Entity
expose :name
private
def name
object.girl.name
end
end
在多层关联太深的情况下考虑使用,可以接受的长度内还是用块比较舒服点
你说的
grape
的params validation
,应该就是我上面说的declared
吧,他不是需要去借助gem 'hashie-forbidden_attributes'
这个gem
的吗?你创建一个数据的时候,不加这个 gem 可以吗?这个倒是一直没有找到好的方法去解决。
#1 楼 @42thcoder 用子类,感觉还是需要去判断下吧。毕竟对外显示的类就是 Customer,所以不管显示还是列表,都是得经过 Customer 的 Entity。 你说的别名用 as 的确是不错,不过多表关联的场景还是用 () 较好吧,如下:
class Customer < ActiveRecord::Base
has_one :girl
end
class Girl < ActiveRecord::Base
belongs_to :customer
end
class Customer < Grape::Entity
expose(:name){|model|model.girl.name}
end
Grape 的 params validation 不是很了解,用这个做创建的功能,不会出现 ActiveModel::ForbiddenAttributesError 的报错吗,回去有时间去看看