def create
@article = Article.new(params[:article])
@article.save
redirect_to @article
end
def show
@article = Article.find(params[:id])
end
我按照Rails入门指南进行操作。我有一个表单,在单击提交按钮时,使用表单输入创建一个@article
对象(RESTful对象)。
redirect_to @article
向/articles/id
发送GET请求,对吗?如果是这样,为什么会这样呢?这只是redirect_to
的工作原理吗?
答案 0 :(得分:2)
redirect_to调用url_for。
url_for在记录中调用to_param,默认情况下返回id。
因此redirect_to @article将生成/ articles /:id
答案 1 :(得分:1)
<强>物件强>
要添加到Nishu
的答案,当您在任何 path_helper(link_to
,redirect_to
等)中引用对象时,Rails会做的很难工作并向您显示对象
请记住,Ruby / Rails是一个object-orientated框架,这意味着你所做的一切都必须围绕一个对象。对于Rails,对象使用模型中的数据填充,使用ActiveRecord
-
因此,如果您使用redirect_to @article
,Rails基本上会查找该特定记录的show
操作。由于您的路线应为resourceful - 这意味着Rails基本上可以查找相关路线以自行显示该记录
希望这有帮助吗?