Ruby on Rails中的redirect_to参数

5

当涉及到Rails时,总会有一定程度的黑魔法,我找不到文档来帮助我解决这个问题。事实上,redirect_to做的事情是非常直接明了的。实际上,这个问题甚至与之无直接关系,但我经常看到传递给redirect_to的参数,却不知道那些参数从何而来。例如,如果你生成一个新对象,比如'user',你会在user_controller.rb中看到类似于下面的代码:

  def destroy
    @user = User.find(params[:id])
    @user.destroy

    respond_to do |format|
      format.html { redirect_to(users_url) }
      format.xml  { head :ok }
    end
  end

问题是,这里的users_url到底是什么?它来自哪里?有没有人能够指导我查阅相关文档?

2个回答

3

如果您使用资源路由,Rails会自动生成许多命名路由。您可以通过运行rake routes来查看它们。其他示例包括edit_user, usernew_user。通过在名称后附加_url,名称将解析为相应的URL。而URL是redirect_to所需的。


1
有关此内容的一些有用阅读材料可以在RailsGuides上找到:http://guides.rubyonrails.org/routing.html - Josh Lindsey
那个最后的陈述不是正确的。redirect_to 命令可以接受一条路径。如果你需要完整的 URL 而不是相对路径,可以使用 *_url 形式。 - John Topley

1
在这种情况下,users_url 是指查看用户的完整 URL 路径。这是由 Rails action_dispatch 根据您的域对象自动生成的。如果您对此文档感兴趣,可以从这里阅读它。
希望对您有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接