【问题标题】:Rails Routing and View Helper NamesRails 路由和查看助手名称
【发布时间】:2013-02-04 03:46:05
【问题描述】:

我在 routes.rb 中定义了这条路线:

matc "articles/:id/vote/up" => "articles#vote", :liked=>true

这条路线的耙子是:

/articles/:id/vote/up(.:format) jokes#vote {:liked=>true}

第一列为空白。 我的问题是,这个链接的路由助手名称是什么? 例如articles_vote_up_path(:id)。 有没有更丑陋的方法可以链接到这条路径? 我怎样才能知道?

我想我误解了一些东西,在这种情况下请指导我正确的方向。

谢谢

【问题讨论】:

    标签: ruby-on-rails routes


    【解决方案1】:

    您需要传递 :as 选项才能使用命名路由

    match "articles/:id/vote/up" => "articles#vote", :liked=>true, as: :article_vote_up

    生成article_vote_up_path

    【讨论】:

    • 谢谢你,正是我要找的东西
    【解决方案2】:

    当您运行 rake routes 时,您可以将 _path 添加到左侧第一列中的任何内容,这就是该链接的路由 url 助手的内容。例如,这是我的一个项目中来自rake routes 的一行:

                  subscriptions GET  /subscriptions(.:format) subscriptions#index
    

    这个网址的网址助手是subscriptions_path

    【讨论】:

    • 问题是,第一列是空白的(在这种情况下)。这是有原因的吗?
    • 正如@jvnill 正确识别的那样(我忽略了),如果您使用match,它只会在您使用“标准-ish”路由时生成一个url帮助程序。我实际上不确定这个标准是什么。 (以下是我的一个 Rails 应用程序中的一些 URL,它们在使用 match 时具有和不具有自动生成的 URL:departments /v1/schedule/:semester:year/departments(.:format) departments#index/v1/schedule/:semester:year/departments/:department_number(.:format) departments#show
    猜你喜欢
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    相关资源
    最近更新 更多