redirect_to 匹配器

redirect_to 匹配器用于指定请求重定向到给定的模板或操作。它委托给 assert_redirected_to.

它在控制器规范(spec/controllers)和请求规范(spec/requests)中可用。

使用 redirect_to 和四个可能的选项

给定一个名为“spec/controllers/widgetscontrollerspec.rb”的文件

require "rails_helper"

RSpec.describe WidgetsController do

  describe "#create" do
    subject { post :create, :params => { :widget => { :name => "Foo" } } }

    it "redirects to widget_url(@widget)" do
      expect(subject).to redirect_to(widget_url(assigns(:widget)))
    end

    it "redirects_to :action => :show" do
      expect(subject).to redirect_to :action => :show,
                                     :id => assigns(:widget).id
    end

    it "redirects_to(@widget)" do
      expect(subject).to redirect_to(assigns(:widget))
    end

    it "redirects_to /widgets/:id" do
      expect(subject).to redirect_to("/widgets/#{assigns(:widget).id}")
    end
  end
end

我运行 rspec spec/controllers/widgets_controller_spec.rb

那么示例应该全部通过。