rails 开发随手记 3

插播一条新闻:10M光纤接入寝室,广大人民奔走相告。

我承认我蛋疼了,因为换装了10M光纤,所以有从ubuntu12.10换到了Kubuntu12.10。。。不再换了。

再插播一条牢骚:这学期虽然课不多,但是事不少。周一只有一节课,周二只有一节课,翘了之后就是一周休息五天的节奏了。

数据库实践居然蛋疼的要写个asp。我晕。我不会,也不想学,于是就给老师申请了换用其他来做。其他=rails

正题:

render 

  这东西的效果目前在我看来等同于include或者import之类的,会把指定的片段包含到对应的erb中。

 

<%= render 'layouts/header' %>

这行代码会寻找一个名为 app/views/layouts/_shim.html.erb 的文件,执行文件中的代码,然后把结果插入视图。

脚手架 scaffold

<%- model_class = Teacher -%>
<div class="page-header">
  <h1><%=t '.title', :default => [:'helpers.titles.edit', 'Edit %{model}'], :model => model_class.model_name.human %></h1>
</div>
<%= render :partial => 'form' %>

我之前在使用了scaffold生成了Teacher,现在观察它的的代码发现,对应的view文件夹下有个_form.html ,里面是对应的表格,应该就是new,edit时的表格了

还要做的就是加个授权验证,非管理员登陆时禁止增删改。我觉得利用helper函数,写个if就差不多了吧。我自己是写了个signed_in? 的函数用于判断用户是否登陆。如果有更好得方式,请指教。

 

bootstrap 居中显示:

上代码:

.center {
margin-top: 60px;
margin-right: 100px;
margin-bottom: 60px;
margin-left: 100px;
text-align: center;
}

加到app/assets/stylesheets/application.css.scss 里,然后在对应的部分包裹个<div class="center">即可.

model的查询 :看这里:http://guides.ruby-china.org/active_record_querying.html 应该就够用了

 

表单中动态选项:

恩,就是说,选项的内容来自数据库中。

Helper:
def getRootDepts
        Dept.where('FatherID=0').select("DeptName,id").collect{|d| [d.DeptName,d.id]}
end

对应controller对应方法中要有:
@fathers = getRootDepts

对应view:
<div class="control-group">
      <%=f.label :上级院系 , class: "control-label"%>
      <div class="controls">
          <%=f.select(:FatherId, @fathers, {:prompt=>"上级院系"} ) %> 
      </div>
 </div>
具体用法可以查看api文档

如何使用js动态显示元素:

<div>点我:<input onclick="clickme(this)" type="checkbox" /></div>
<div id="laoda" style="display: none;">上级学院:<select>
<option selected="selected">---</option>
<option>张三</option>
<option>李四</option>
<option>大白</option>
</select></div>
<script type="text/javascript">
        function clickme(obj){
            if(obj.checked){
                document.getElementById("laoda").style.display="block";
            }
            else{
                document.getElementById("laoda").style.display="none";
            }
        }
</script>

效果就是,点了之后对应的div中的内容就不显示了,这个应该属于js的基本应用,从未做过,是故贴出来。

 

 

posted @ 2013-04-25 00:58  jzlikewei  阅读(178)  评论(0编辑  收藏  举报