Module: Ns::ControllerServicable
- Defined in:
- lib/ns_service_pack/controller_servicable.rb
Instance Method Summary collapse
-
#create ⇒ Object
创建记录.
-
#destroy ⇒ Object
更新记录 # 在获取时要做过滤判断!! TODO.
-
#get_page_data(start = 0, size = 10, params = {}) ⇒ Object
return [total_count, page_data] 可在子类中覆盖定制.
- #index ⇒ Object
-
#new ⇒ Object
get a new buz obj with db default value.
-
#show ⇒ Object
查找单条记录.
-
#update ⇒ Object
更新记录.
Instance Method Details
#create ⇒ Object
创建记录
37 38 39 40 41 42 43 44 |
# File 'lib/ns_service_pack/controller_servicable.rb', line 37 def create @_obj = model_class.new_from_buz(params[:data]) if @_obj.save render :json=>ResultPacker.data(@_obj, "创建#{model_class.name}##{@_obj.respond_to?(:id) ? @_obj.id : @_obj.object_id}成功!") else render :json=>ResultPacker.help(valid_errors(model_class.buz_hashize(@_obj.errors.to_hash))) end end |
#destroy ⇒ Object
更新记录 # 在获取时要做过滤判断!! TODO
57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/ns_service_pack/controller_servicable.rb', line 57 def destroy @_obj = model_class.find(params[:id]) if model_class.mapping.keys.include?(:status) && !params.key?(:force_del) if @_obj.update_from_buz(:status=>'作废') render :json=>ResultPacker.data(@_obj, "该记录已被逻辑删除(状态标记为:作废!)") else render :json=>ResultPacker.help(valid_errors(model_class.buz_hashize(@_obj.errors.to_hash))) end else @_obj.destroy render :json=>ResultPacker.data(@_obj, "警告:资源(#{model_class.name}##{@_obj.respond_to?(:id) ? @_obj.id : @_obj.object_id})已被物理删除!此资源不具备逻辑删除条件具有status业务属性或被内部强制删除!") end end |
#get_page_data(start = 0, size = 10, params = {}) ⇒ Object
return [total_count, page_data] 可在子类中覆盖定制
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/ns_service_pack/controller_servicable.rb', line 13 def get_page_data(start = 0, size = 10, params = {}) where_conds = @conds.present? ? @conds : model_class.arrayify_conds(params) logger.debug "====>conds: #{where_conds.inspect}" conds = {:conditions=>where_conds} total_count = model_class.count(conds) page_params = conds.merge!(:select=>model_class.select_fields(params[:select]), :offset=>start, :limit=>size, :order=>params[:order]) page_data = model_class.all(page_params) [total_count, page_data] end |
#index ⇒ Object
4 5 6 7 8 9 |
# File 'lib/ns_service_pack/controller_servicable.rb', line 4 def index @result = model_class.paginate(params) do |start, page_size| get_page_data(start, page_size, params) end render :json=>ResultPacker.data(@result.as_json) end |
#new ⇒ Object
get a new buz obj with db default value
25 26 27 28 |
# File 'lib/ns_service_pack/controller_servicable.rb', line 25 def new @_data = model_class.buz_hashize render :json=>ResultPacker.data(model_class.name.underscore.to_sym=>@_data) end |
#show ⇒ Object
查找单条记录
31 32 33 34 |
# File 'lib/ns_service_pack/controller_servicable.rb', line 31 def show @_obj = model_class._find_resource(params) render :json=>ResultPacker.data(@_obj, "获取#{model_class.name}##{@_obj.respond_to?(:id) ? @_obj.id : @_obj.object_id}成功!") end |
#update ⇒ Object
更新记录
47 48 49 50 51 52 53 54 |
# File 'lib/ns_service_pack/controller_servicable.rb', line 47 def update @_obj = model_class.find(params[:id]) if @_obj.update_from_buz(params[:data]) render :json=>ResultPacker.data(@_obj, "更新#{model_class.name}##{@_obj.respond_to?(:id) ? @_obj.id : @_obj.object_id}成功!") else render :json=>ResultPacker.help(valid_errors(model_class.buz_hashize(@_obj.errors.to_hash))) end end |