<% 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 %>
這個就是多次調用