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 %>

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