如何在rails路由中创建新的url

时间:2010-08-30 02:07:49

标签: ruby-on-rails routing

我有模型/控制器叫做通知。

我想创建一个新网址,以便我可以通过以下方式访问它:

/notifications/my_new_url?id=4并让该页面查看my_new_url.html.erb

然而,它总是继续show方法:

这是我的routes.rb

  map.resources :notifications

  map.connect 'notifications/get',
              :controller => 'notifications',
              :action     => 'show'            

  map.connect 'notifications/my_new_url',
              :controller => 'notifications',
              :action     => 'my_new_url'            

请帮助我...我已经坚持了一段时间

1 个答案:

答案 0 :(得分:0)

您需要将URL映射到控制器和操作组合。但是您的操作可以呈现视图。您还需要在带有通配符的URL之前映射专用URL。所以这样做:

# config/routes.rb
    ...
    map.connect 'notifications/my_new_url',
                :controller => 'notifications',
                :action => 'my_new_url'

    map.resources :notifications
    ...


# app/controllers/notifications_controller.rb
  ...
  def my_new_url
    respond_to do |format|
      format.html { render :my_new_url }
    end
  end
  ...

# app/views/notifications/my_new_url.html.erb
  ...