2017-02-20 241 views
0

我正在學習Ruby on Rails,我不確定我的理解是正確的。將實例對象作爲參數傳遞給redirect_to方法

我只限定在控制器的方法:

def create 
    page_params = params.require(:page).permit(:title, :body, :slug) 
    @page = Page.new(page_params) 
    #render text: @page.to_json 
    @page.save 
    redirect_to @page 
end 

首先,我的形式的數據存儲到一個實例變量@page,我用render text: @page.to_json,看看在對象,其中包含內容:

{ 
    id: null, 
    title: "This a new post", 
    body: "This a new post This a new post", 
    slug: "This a new post", 
    created_at: null, 
    updated_at: null 
} 

第一個問題是,似乎在@page中沒有url信息,Rails如何通過@page知道路徑?

另一個問題是,當我將這個實例對象傳遞給redirect_to時,它是否爲語法糖redirect_to url_for(@page)

+1

2.是的。 1.請參閱Q2上的答案:) – mudasobwa

回答

1

路線在routes.rb文件中定義。有關更多詳細信息,請參閱http://guides.rubyonrails.org/routing.html。 要查看應用程序的途徑有兩種方式,即

a. Execute rake:routes in your terminal. 
b. Open localhost:3000/anywrongroute 

它會顯示在你的應用程序中所有的路由。

  • +0

    非常感謝 – PJCHENder

    0

    我發現@Horse語音之前已經問過類似的問題,@Nishant提供了一個很好的解釋here

    相關問題