Ich bin auf den berüchtigten NoMethodError gestoßen, den ich selbst nach der Anzahl der SO-Posts nicht knacken kann.NoMethodError: undefinierte Methode 'clients' für nil: NilClass
Hinweis: Ich laufe auf Cloud9 Entwicklungsumgebung
Ich bin eine Produktivität Website zu machen, wo ein Benutzer ihre Kunden, Projekte haben kann, usw.
Ich bin versucht, die laufen clients_display_test.rb testen und erhalte den folgenden Terminalfehler.
Jede Hilfe würde geschätzt, aber ich würde fragen, wenn Sie feststellen, wo mein Fehler ist, bitte angeben, wo mein Mangel an technischen Verständnis :)
1) Error:
ClientsDisplayTestTest#test_profile_display:
NoMethodError: undefined method `clients' for nil:NilClass
app/controllers/clients_controller.rb:4:in `index'
test/integration/clients_display_test_test.rb:11:in `block in <class:ClientsDisplayTestTest>'
48 runs, 127 assertions, 0 failures, 1 errors, 0 skips
war
clients_display_test.rb
require 'test_helper'
class ClientsDisplayTestTest < ActionDispatch::IntegrationTest
include ApplicationHelper
def setup
@user = users(:Robert)
end
test "profile display" do
get '/clients'
assert_template "clients/index"
assert_select 'title', "Clients"
end
end
Anbei sind einige .rb-Dateien, die hoffentlich helfen könnten:
clients_controller.rb
class ClientsController < ApplicationController
def index
@clients = current_user.clients.paginate(page: params[:page])
end
def show
end
end
routes.rb
Rails.application.routes.draw do
get 'password_resets/newedit'
root 'static_pages#home'
get 'about' => 'static_pages#about'
get 'signup' => 'users#new'
get 'login' => 'sessions#new'
#the page for new session
post 'login' => 'sessions#create'
#creates a new session
delete 'logout' =>'sessions#destroy'
#deletes the session
get '/clients' => 'clients#index'
get '/clients/show' => 'clients#show'
resources :users
resources :clients
resources :account_activations, only: [:edit]
resources :password_resets, only: [:new, :create, :edit, :update]
end
Client-Aufrufe:
index.html.erb
<%= provide(:title, 'Clients') %>
<div class="clients-container container">
<div class="row">
<!-- Add pagination later for multiple folders over multiple pages -->
<% if current_user.clients.any? %>
<%= render @clients %>
<%= will_paginate @clients %>
<% end %>
</div>
</div>
_client.html.erb
<div class="col-md-2 client-folder" style="margin: 10px" id="client - <%= client.id %>">
<span class="clientName" ><%= client.client_name %></span> <br>
<span class="contactName"><%= client.contact_name %></span>
</div>
Verwenden Sie Entwickeln? – GoGoCarl