【问题标题】:Rails route concerns - Datable routesRails 路线问题 - 可数据路线
【发布时间】:2015-10-11 06:36:22
【问题描述】:

我希望允许多个路由成为:datable,这意味着它们应该可以按日期过滤。这是我的路线:

# The datable concern
concern :datable do
  member do
    get 'dated/:start_date/(:end_date)', as: 'dated', constraints: {start_date: /\d{4}-\d{2}-\d{2}/, end_date: /\d{4}-\d{2}-\d{2}/}
  end
end

# The route in which it's added
resources :applications, concerns: :datable

理想情况下,这会产生:

/applications/1/dated/:start_date/(:end_date)

但是,我遇到了路由错误:

ArgumentError: Missing :action key on routes definition, please check your routes.

显然我缺少:action 键,但为什么这对于一个问题是必要的?它不应该继承调用它的路由吗?

【问题讨论】:

  • “继承路由”是什么意思?resources 路由中有很多动作(索引、显示、新建等),Rails 应该如何知道它是哪些动作?应该用吗?
  • 啊,我明白你在说什么。这很有意义。我会用我如何解决这个问题来回答自己。谢谢,马特!

标签: ruby-on-rails ruby-on-rails-4 routes


【解决方案1】:

Matt Brictson 提请我注意,关注点不知道要路由到资源中的哪个操作。这显然是有道理的,但是,我查看了它。

担心完全没问题。为了解决我遇到的问题,我需要将简单的 resources :applications 替换为以下内容:

# Leave out the index resource, which is what I am "concerning"
resources :applications, except: [:index]

# Manually create the index route; adding the concern.
get 'applications', to: 'applications#index', as: 'applications', concerns: :datable

像魅力一样工作。谢谢你的提示,马特。我希望这可以为其他有此问题的人提供见解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-29
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多