def new
@post = Post.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @post }
end
end
def create
@post = Post.new(params[:post])
#something else
end
在這裏,因爲當我們實際創建一個新帖子時,我們調用方法create使用Page.new(params [:page]),方法new只能用於調用視圖new.html.erb。那麼爲什麼我們仍然需要在這裏的新方法中使用實例變量@post?爲什麼我們需要新的實例變量?
使用'form_for'產生依賴於對象的形式,因此對於新的行動,它只是造成了空白表格空對象,但你可以重複使用形式的編輯操作和加載現有的Post對象,它會再加載相關領域到表單 – xkickflip 2013-04-07 20:39:21
由於我們已經依賴於形式的對象,爲什麼我們需要在再次使用Page.new創建方法? – ZeroNegOne 2013-04-07 20:43:48
「創建」操作的處理程序與調用「new」操作的處理程序完全不同。每個HTTP請求都會觸發一個全新的Rails調用,它與其他每個HTTP請求都是隔離的。你設置的實例變量最初不再存在 - 你只是有一個新的請求對象,你必須再次處理參數 – Gareth 2013-04-07 20:48:35