ROR学习笔记

1.关于form_for的理解

<% form_for :book,@book,:url=>{:controller=>'',:action=>''} do |f|%>
:book 决定 name 和 id <input name="book[]" id="book[]">
@book 决定 value值 <input value="">

所以在新建model的表单都没有@book参数
在update和delete的表单里都带上@book参数用来显示

2.关于form.select

<%= form.select :book , @arr %>
@arr = Category.all.collect {|c| [c.name,c.id]}
页面显示:
<option value="c.id">c.name</option>


3.关于action跳转

redict_to :controller => '' ,:action => 'method_name'(方法名)(在同一个controller里时:controller可省略)

render :action => 'page_name' (页面名)


4.关于model之间的联系

@book = @user.books.build(params[:book])
当 book belongs_to :user
user has_many :books
的时候 @book在创建的时候就直接跟user挂上钩了


5.子模板:partials用法

命名以"_"开头,例如"_owner.rhtml"
要和父页面在同一个目录
在这个页面会生成跟页面名字一样的对象,在"_owner.rhtml"页,会有一个owner对象
这个对象有什么属性,取决于从父页面传过来的对象。(他俩一样)

在父页面调用子页面:
1.调用一次

<%= render :partials => 'owner' ,:object => @book %>

这里 的 :object 就是向子页面传的值 这样 在"_owner.rhtml"页的owner对象就有了@book的全部属性了

2.调用多次

<%= render :partials => 'owner' ,:object => @user.books %>

这个就是多次调用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章