我正在学习Ruby on Rails,我不确定我的理解是否正确。
我只是在控制器中定义一个方法:
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)
的语法糖?
答案 0 :(得分:1)
路由在routes.rb
文件中定义。有关详细信息,请参阅http://guides.rubyonrails.org/routing.html。
要查看应用程序的路径,有两种方法,即
a. Execute rake:routes in your terminal.
b. Open localhost:3000/anywrongroute
它将显示应用程序中的所有路径。
答案 1 :(得分:0)
我发现@Horse Voice之前已经提出了类似的问题,@ Nishant提供了一个很好的解释here。