Ошибка учебника по Hartl Rails 6 Глава 14.2.3 Следующие страницы и страницы подписчиков - PullRequest
0 голосов
/ 14 марта 2020

Я действительно потерян здесь. Я попытался посмотреть, что указано в сообщении об ошибке. Но я заблудился относительно того, что изменить, не испортив все это. Любая помощь будет принята с благодарностью.

Мое сообщение об ошибке

ERROR["test_micropost_interface", #<Minitest::Reporters::Suite:0x000055b1f91346f0 @name="MicropostsInterfaceTest">, 1.9944019659999412]
 test_micropost_interface#MicropostsInterfaceTest (1.99s)
ActionView::Template::Error:         ActionView::Template::Error: undefined method `relationships_path' for #<#<Class:0x000055b1f9317788>:0x000055b1f7f0e818>
            app/views/users/_follow.html.erb:1
            app/views/users/_follow_form.html.erb:6
            app/views/users/show.html.erb:15
            test/integration/microposts_interface_test.rb:34:in `block in <class:MicropostsInterfaceTest>'

  59/59: [===================================] 100% Time: 00:00:02, Time: 00:00:02

Finished in 2.77981s
59 tests, 298 assertions, 0 failures, 1 errors, 0 skips

_follow. html .erb

<%= form_with(model: current_user.active_relationships.build, remote: true) do |f| %>
  <div><%= hidden_field_tag :followed_id, @user.id %></div>
  <%= f.submit "Follow", class: "btn btn-primary" %>
<% end %>

_follow_form_ html .erb

<% unless current_user?(@user) %>
  <div id="follow_form">
  <% if current_user.following?(@user) %>
    <%= render 'unfollow' %>
  <% else %>
    <%= render 'follow' %>
  <% end %>
  </div>
<% end %>

показать . html .erb

<% provide(:title, @user.name) %>
<div class="row">
  <aside class="col-md-4">
    <section>
      <h1>
        <%= gravatar_for @user %>
        <%= @user.name %>
      </h1>
    </section>
    <section class="stats">
      <%= render 'shared/stats' %>
    </section>
  </aside>
  <div class="col-md-8">
    <%= render 'follow_form' if logged_in? %>
    <% if @user.microposts.any? %>
      <h3>Microposts (<%= @user.microposts.count %>)</h3>
      <ol class="microposts">
        <%= render @microposts %>
      </ol>
      <%= will_paginate @microposts %>
    <% end %>
  </div>
</div>

microposts_interface_test.rb

require 'test_helper'

class MicropostsInterfaceTest < ActionDispatch::IntegrationTest

  def setup
    @user = users(:michael)
  end

  test "micropost interface" do
    log_in_as(@user)
    get root_path
    assert_select 'div.pagination'
    # Invalid submission
    assert_no_difference 'Micropost.count' do
      post microposts_path, params: { micropost: { content: "" } }
    end
    assert_select 'div#error_explanation'
    assert_select 'a[href=?]', '/?page=2'  # Correct pagination link
    # Valid submission
    content = "This micropost really ties the room together"
    assert_difference 'Micropost.count', 1 do
      post microposts_path, params: { micropost: { content: content } }
    end
    assert_redirected_to root_url
    follow_redirect!
    assert_match content, response.body
    # Delete post
    assert_select 'a', text: 'delete'
    first_micropost = @user.microposts.paginate(page: 1).first
    assert_difference 'Micropost.count', -1 do
      delete micropost_path(first_micropost)
    end
    # Visit different user (no delete links)
    get user_path(users(:archer))
    assert_select 'a', text: 'delete', count: 0
  end
end

На данный момент я в основном скопировал и вставил из hartls github, потому что я не мог заставить что-либо работать. Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 14 марта 2020

спасибо за исправления, вот правильный файл маршрутов

Rails.application.routes.draw do
  get 'password_resets/new'
  get 'password_resets/edit'
  root   'static_pages#home'
  get    '/help',    to: 'static_pages#help'
  get    '/about',   to: 'static_pages#about'
  get    '/contact', to: 'static_pages#contact'
  get    '/signup',  to: 'users#new'
  get    '/login',   to: 'sessions#new'
  post   '/login',   to: 'sessions#create'
  delete '/logout',  to: 'sessions#destroy'
  resources :users do
    member do
      get :following, :followers
    end
  end
  resources :account_activations, only: [:edit]
  resources :password_resets,     only: [:new, :create, :edit, :update]
  resources :microposts,          only: [:create, :destroy]
  resources :relationships,       only: [:create, :destroy]
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...