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的基本应用,从未做过,是故贴出来。