【问题标题】:Ruby on Rails redirect_to argumentsRuby on Rails redirect_to 参数
【发布时间】:2010-03-03 02:27:55
【问题描述】:

Rails 总是有一定程度的黑魔法,我找不到帮助我解决这个问题的文档。 redirect_to 所做的事情显然是直截了当的。事实上,这个问题甚至没有直接关系,而是我看到的一个参数经常传递给 redirect_to 并且无法理解该参数的来源。例如,如果你搭建一个新对象,比如“用户”,你会在 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 到底是什么?它从何而来?就文档而言,有人能指出我正确的方向吗?

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    如果您使用基于资源的路由,Rails 会自动生成许多命名路由。您可以通过运行rake routes 来查看这些内容。其他示例是edit_user, usernew_user。通过将 _url 附加到该名称,该名称将被解析为匹配的 url。而 url 正是 redirect_to 所需要的。

    【讨论】:

    • 可以在 RailsGuides 上找到一些有用的阅读材料:guides.rubyonrails.org/routing.html
    • 最后那句话不是真的。 redirect_to 会很高兴地走上一条路。如果您需要完整的 URL 而不是相对路径,请使用 *_url 表单。
    【解决方案2】:

    在这种情况下,users_url 是视图用户的完整 URL 路径。这是由 Rails action_dispatch 根据您的域对象自动生成的。如果您对此文档感兴趣,可以阅读from here

    HTH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      相关资源
      最近更新 更多