ActionController :: UrlGenerationError: Нет подходящих маршрутов (Rspec) - PullRequest
0 голосов
/ 27 декабря 2018

Я получаю следующую ошибку при тестировании моего CommentsController с RSpec:

ActionController::UrlGenerationError: 
  No route matches {:action=>"create", :comment=>{:comment=>"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}, :controller=>"comments"}

spec / models / comment_spec.rb

RSpec.describe CommentsController, type: :controller do
  let!(:user) { create(:user) }
  let!(:post1) { create(:post, user: user) }
  let!(:comment) { create(:comment, user_id: user.id, post_id: post1.id) }
  let!(:comment_attributes) { attributes_for(:comment) }

  describe "#create" do
    before do
      sign_in user
    end

    it 'save post' do
      expect do
        post :create, params: { comment: comment_attributes }, session: {}
      end.to change(Comment, :count).by(1)
    end

    it 'if post saves, redirect_to posts page' do
      post :create, params: { post: comment_attributes }, session: {}
      expect(response).to redirect_to(posts_path)
    end
  end
end

1 Ответ

0 голосов
/ 27 декабря 2018

Вам необходимо обновлять файл routes.rb каждый раз, когда вы создаете новый ресурс (доступ к которому вы хотите получить по ссылке), в противном случае Rails не знает, какой контроллер использовать с данным URL.Добавление строки resources :comments в routes.rb должно сделать это за вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...