【问题标题】:rails 3 removing controller name form urlrails 3 删除控制器名称表单 url
【发布时间】:2012-01-20 18:34:34
【问题描述】:

我正在尝试在 rails 3 应用程序中设置一些半静态页面 我创建了一个 Pages 控制器,其中包含一些非安静的操作

class PagesController < ApplicationController

  def home
  end
  def about
  end
  def contact
  end
  def monday
  end
  def saturday
  end
  def sunday
  end

end

它显示在 /pages/home 等处。 有没有办法重新路由页面,以便它们显示在 /home 等下。

我试过了

resources :pages, :path => '/' do
  #blah
end

但我收到一条错误消息,告诉我 :action => 节目丢失。 是否可以将设置应用于所有非休息动作?

【问题讨论】:

    标签: ruby-on-rails-3 routes


    【解决方案1】:

    您可以添加收集路线:

    resources :pages do
      collection do
        get 'home'
        get 'about'
        get 'contact'
        ...
      end
    end
    

    【讨论】:

    • 魔法!!!但是是否有可能获得所有嵌套资源而不必手动写下来?或做类似 %w{about contact home}.each {|x|得到 x} ?
    • 是的,您的每个语句都可以正常工作。在我有两个具有自定义路由和路由相同的资源的情况下,我实际上做了类似的事情。只要记住可读性。另外,在这种情况下,我猜这些是静态页面。但总的来说,像这样添加很多自定义路由被认为是一种味道。
    • 是的,它们几乎都是静态页面。至少作为一个开始。我在这里学习:)。我确实尝试了每个语句,但我只是得到了一个缺少控制器的错误。不过我会再试一次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2011-08-04
    • 2018-01-10
    • 2015-06-17
    相关资源
    最近更新 更多