【问题标题】:Add a new page to a resource in rails向 Rails 中的资源添加新页面
【发布时间】:2011-07-14 02:31:12
【问题描述】:

好的,这看起来很简单,以至于我觉得问起来有点愚蠢,但我看到其他人问过类似但不完全相同的问题,他们的答案并不能解决我的问题。我有一个名为 servicios 的资源。

resources :servicios,为我的控制器中的“默认”操作创建了路由:索引、新建、创建、显示、编辑、更新、销毁。但是,我需要另一个操作,即 search,它应该映射到我将要实施高级搜索的视图。

我该怎么做?

使用新信息进行编辑 使用这种方法:资源 :servicios, :collection => {:search => :get} http://localhost:3000/servicios/search 我收到错误 ActiveRecord::RecordNotFound in ServiciosController#show 找不到 ID=search 的 Servicio

【问题讨论】:

    标签: ruby-on-rails routes


    【解决方案1】:

    如果您使用的是 Rails 3,那么路由定义将如下所示

    resources :servicios do
      collection do
        get :search
      end
    end
    

    【讨论】:

    • 是的,它做到了。非常感谢。
    【解决方案2】:
    resources :servicios, :collection => {:search => :get}
    

    将 /servicios/search 路由到 servicios 控制器中的def search...end

    或者……

    match 'search', :to => 'servicios#search'
    

    【讨论】:

    • 我更新了问题,以便您可以看到我得到了什么。我有兴趣使用控制器中的搜索方法。
    • 您通常必须在更改路由文件后重新启动服务器。你这样做了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 2014-12-29
    • 2014-02-18
    • 1970-01-01
    • 2021-01-05
    相关资源
    最近更新 更多