Rails Activeadmin 界面构成方法解析

来源:互联网 发布:数据质量监控系统 编辑:程序博客网 时间:2024/06/13 21:43

以一个PMS系统中的供应商界面的功能来做例子,并没有将界面与后台代码解偶,而是绑定在了一起。controller是这个文件,view也是这个界面,只有model是另外的文件,这是rails的要求。该界面数据和数据库的一张表,或者说一个model相对应。一个界面就和一张数据表绑定,非绑定数据界面另放view中render。理解这一点才能更好的理解功能的实现。

#supplier.rb文件:ActiveAdmin.register Supplier do#permit_params:允许数据库传到界面的参数  permit_params :supplier_code, :supplier_type, :supplier_name, :supplier_simple, :company_address, :company_tel, :company_fax, :supplier_status, :company_account,                :account_name, :company_tax, :supplier_order, :contact_count, :attachment_count, :material_count, :remark, :operator_id, :payment_term#分页开启,和每页数据量  config.paginate = true  config.per_page = 20  #默认排序  config.sort_order = 'supplier_order'  #禁用功能  config.filters = false  config.batch_actions = false#绑定的数据表的信息展示,将展示的信息做处理,如果不写这段,数据表中的数据仍然会显示, 但是会显示所有字段,并且显示的列名为数据表的字段名,从网页显示的角度来说并不美观index :title => '供应商列表' do    selectable_column    #id_column    column "编码", :supplier_code    column "类别", :supplier_type_name    column "名称", :supplier_name    column "公司地址", :company_address    column "状态", :supplier_status_name    column "备注", :remark    column "属性" do |f|      if f.attachment_count > 0        span  do          image_tag "/assets/icons/address.png", height: '20', width: '20', title: "有附件"        end      end    end    actions  end#界面方法,如非绑定数据界面的后台方法的 collection_action :get_users, :method => :post do    supplier_id = params[:id]    render json: SupplierContact.format_contact_data(supplier_id)  end  collection_action :save_contact, :method => :post do    render json: SupplierContact.save_contact_data(params)  end#form表单显示 和index一样是一种数据展示的方式,其他的还有grid,Table,blog,Blocks#form do |f|    f.inputs "供应商信息" do      #只有新建时才更新      if resource.supplier_code.present?        supplier_code = resource.supplier_code      else        supplier_code = Base.get_model_code('GYS', 4, 'supplier')      end      f.input :supplier_code, :hint => "供应商唯一编号", :input_html => { :value => supplier_code, :readonly => true}, :label=> "供应商编号"      f.input :supplier_name, :label=> "供应商全称", :required => true      f.input :supplier_simple, :label=> "简称"      f.input :supplier_type, :as => :select, :collection =>  resource.supplier_type_ary, :include_blank => false, :label=> "供应商类别"      f.input :supplier_status, :as => :select, :collection =>  resource.supplier_status_ary, :include_blank => false, :label=> "供应商状态"      f.input :company_address, :label=> "公司地址"      f.input :company_tel, :label=> "公司座机"      f.input :company_fax, :label=> "公司传真"      f.input :company_account, :label=> "公司账户"      f.input :account_name, :label=> "账户名称"      f.input :company_tax, :label=> "税号"      f.input :payment_term, :label=> "付款周期"      f.input :remark, :input_html => { :rows => "5"}, :label=> "备注"      f.input :operator_id, :as => :hidden, :input_html => {:value => current_active_admin_user.id}    end    f.actions  end end
其他相关:http://blog.csdn.net/feng88724/article/details/49124281

原创粉丝点击