ruby-on-rails - 如何在路由级别重定向,而不是在操作级别?

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

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

config/routes.rb

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

下面的测试成功了,不过我还是希望它成功是因为路由级别的重定向,而不是操作级别的重定向。

test/functional/campaigns_controller_test.rb

class CampaignsControllerTest < ActionController::TestCase

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

app/controllers/campaigns_controller.rb

一旦路由级重定向起作用,我想摆脱这个 Action :

def index
  redirect_to newsletters_path
end

最佳答案

你的注释行

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

正在工作,还有

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

也在工作。

关于ruby-on-rails - 如何在路由级别重定向,而不是在操作级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11534210/

相关文章:

python - 如何测试或模拟 "if __name__ == ' __main_ _'"内容

javascript - 最新的 Selenium 不受支持的 "onload dialog"的解决方法?

ruby-on-rails - Rails 4 - 所有测试都失败(甚至断言 true)

ruby-on-rails - Faye-rails、nginx、faye 的乘客响应缓慢

ruby-on-rails - 有条件地从 rails 表单中排除字段

ruby-on-rails - 使用 `rake test` 时出现问题

jquery - 从 Rails 的下拉菜单中选择项目后如何更新数据库字段?

ruby-on-rails - 具有多个条目的 rails 3 habtm 过滤

ruby-on-rails - current_user 和 active_admin

javascript - 使用 AJAX 从 jQuery 向 Rails 服务器提交表单在 IE11 中不起作用