您的位置:首页 > 其它

企业汇报系统细节追加(三)

2015-11-29 13:05 162 查看
一/Ajax请求
  得到文档查询结果后,不跳转页面,将页面刷新重新显示查询结果即可。
  1>在对应<div></div>模块中有如下语句:
    <form class="form-inline" action="/doc/query_search" method="post" style="margin-top:10px;margin-bottom:10px;width:100%;float:left" data-remote="true"> #重
点是红色字体部分,提交之后进入query_search方法,将查询条件保存到@docssss。
    <div id="table_list"> #此处也可使用<div class="table_lis">    <%= render(:partial =>'table_list',:object =>@docssss)%> #局部模板块,
    </div>
  2>views/doc新建文件_table_list.html.erb,存放模板页面要显示的东西
   <table class="table table-hover" >
   ......
   </table>  3>在query_search.js.erb文件调用html()方法:
    $("#table_list").html("<%=j(render:partial=>'table_list', :locals=>{:object=>@docssss})%>") #html方法将render的数据重新加载更新,若上面使用<div
class="table_lis">,此处则用$(".table_list")
  4>render的几种传值方式:具体内容见http://guides.rubyonrails.org/v3.2/layouts_and_rendering.html 
   4.1 rendernothing:
   
render
:nothing

=>
true

   4.2 renderan acion's view
    a,
render
"edit"
:传递视图名。
    b,
render
:edit
:用对象传值。
    c,
render
:action

=>
"edit"
:传递动作。
   4.3 renderan action's template from another controller    a,
render
'products/show' :传递完整的方法路径。

     b,
render
:template

=>
'products/show'
 :传递具体方法路径。
    c,
render
:template

=>
'products/show' :传递任意一个文件。

4.4 renderan arbitrary file

    
render
"/u/apps/warehouse_app/current/app/views/products/show"

   

render
:file
=>
"/u/apps/warehouse_app/current/app/views/products/show" :传递具体的文件路径。

     4.5 rendertext
    
render
:text

=>
"OK"

   4.4 renderJSON

    
render
:json

=>
@product

   4.5 render xml
    render
:xml

=>
@product

   4.6 rendervanilla javascript

二/级联删除,用destroy做删除不仅会当前的数据,还会处理关联的信息 和callback,而delete只把当条数据删除 不会走callback 和 关联的信息
  1>在company.html.erb文件中定义删除方法如下:
    def delete
   @company = Company.find(params[:id])
   @com_id = @company.pre_id
   @company.destroy    redirect_to "/company/index?id=#{@com_id}"
    end
  2>在models/company.rb定义表单之间的依赖关系:
    class Company < ActiveRecord::Base
     attr_accessible :name, :pre_id
     has_many :docs, :class_name =>"Doc", :foreign_key=>"com_id",:dependent =>:destroy
      has_many :users, :class_name =>"User",:foreign_key=>"com_id", :dependent =>:destroy
     
# has_many :child_companies, :class_name =>"Company", :dependent =>:destroy    end
    注意:不能对自己有has_many的关系绑定,就像不能说我有很多个我一样。
  3>在models/doc.rb定义表单之间的依赖关系如下:
   class Doc < ActiveRecord::Base
  attr_accessible :com_id, :content, :title, :comment, :doc_status, :publish_time, :p_user_id, :exmaine_status, :e_user_id, :c_user_id, :exmaine_time
    # validates :title, :content, presence: true,uniqueness: true
     belongs_to :company, :class_name =>"Company",:foreign_key =>"com_id"   end
  注意:有外键的一定要写上外键
  4>在models/user.rb定义表单之间的依赖关系如下:
    class User < ActiveRecord::Base
     attr_accessible :com_id, :name, :password, :user_type
     validates :name, presence: true,uniqueness: true
     validates :password, presence: true
     validates :com_id, presence: true
     validates :user_type, presence: true
      has_many :operationlogs
     belongs_to :company,:foreign_key=>"com_id"
    end附加--代码规范要点:1.
缩进
  缩进两个空格或者软tab = 2个空格,每个block的开始和结束要对齐
    def method_a
    [两个空格]code
    end
  代码一眼看过去就应该看到代码属于哪个层级或者代码块中2.
空格问题
  = == =>+ - * /两侧都要有一个空格,是一个不是2个或者多个,定义method的时候def
method_a(a, b, c) 逗号后面加一个空格。调用的时候同理。 不要参数都堆到一起。数组的初始化的时候也是一样a = [1, a, b]3.
写注释的时候不要用begin和end
  多行的话# comment1
    # comment2
    # ….
  #后面有一个空格4.空行问题
  一个方法中,有好几个逻辑片段的话,可以每个片段直接加一个空行,这样更清晰。两个方法之间要加一个空行5.代码实现要加注释
 #doc start
 #name:index
 #desp:显示用户登录页面
 #params:none
 #coder:liming
 #releasetime:2015.11.23 #updatetime:2015.11.29 #doc end修改于第四周周日
第二次修改于第六周周二  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: