如何在路由级别重定向,而不是在动作级别?

时间:2012-07-18 04:13:45

标签: ruby-on-rails ruby-on-rails-3 testing redirect routes

我想在路由级别(campaigns#index)将newsletters#index重定向到config/routes.rb

配置/ routes.rb中

#match '/campaigns' => redirect('/newsletters')             # something like this
resources :campaigns do
  put 'send_preview'
  put 'send_actual'
  put 'unschedule'
end

以下测试成功,但我再次希望它成功,因为路由级重定向,而不是动作级重定向。

测试/功能/ campaigns_controller_test.rb

class CampaignsControllerTest < ActionController::TestCase

test "get index should redirect to newsletters" do
  get :index
  assert_redirected_to newsletters_path
end

应用/控制器/ campaigns_controller.rb

一旦路由级重定向工作,我想摆脱这个动作:

def index
  redirect_to newsletters_path
end

1 个答案:

答案 0 :(得分:1)

您的注释行

match '/campaigns' => redirect('/newsletters')

正在运作,也是

match '/campaigns', to: 'newsletters#index'

也在努力。