2017-02-20 227 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

    相关问题