При входе на мой Rails-сервер мой ByeBug не работает?

#ruby-on-rails #ruby #byebug

#ruby-on-rails #ruby #byebug

Вопрос:

Вот мой github для моего проекта. Я вставил byebug во все действия моего контроллера для отладки этой формы входа…

 <h1>Login</h1>
<%= form_with model: @user do |form| %>
  <%= render "partials/usererrorform" %>
  <%= form.label :user_name %>
  <%= form.text_field :user_name %>
  <br>  
  <%= form.label :password %>
  <%= form.password_field :password %>
  <br>
  <%= form.submit "LogOn"%>
  <% end %>
  
 class LogInController < ApplicationController
  include ApplicationHelper
  ...
    def post_login
    byebug
    @user = User.find_by(user_name: params[:user][:user_name])
    if @user amp;amp; @user.authenticate(params[:user_name][:password])
      session[:user_name_id] = @user.id
      redirect_to user_path(@user) 
      
    else
      @user ||= User.new
      render :login
    end
   end
  ...
  end
  

Может кто-нибудь сказать мне, почему мой byebug не отображается в моем терминале при нажатии LogOn ?

Это вывод, когда я нажимаю LogOn

 Started POST "/users" for ::1 at 2020-11-10 09:34:53 -0600
   (0.3ms)  SELECT sqlite_version(*)
   (0.1ms)  SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
Processing by UsersController#create as JS
  Parameters: {"authenticity_token"=>"tg1lTsGuYekpNftf6PxqaBLY1LJ61uS/xM/6YwOT2JS3siDaFe7RJCw57JdvNJrDJbRJoB9pHl8B9BE1oBPTug==", "user"=>{"user_name"=>"admin", "password"=>"[FILTERED]"}, "commit"=>"LogOn"}
  Rendering users/new.html.erb within layouts/application
  Rendered partials/_usererrorform.html.erb (Duration: 0.5ms | Allocations: 317)
  Rendered partials/_userform.html.erb (Duration: 6.5ms | Allocations: 4161)
  Rendered users/new.html.erb within layouts/application (Duration: 7.2ms | Allocations: 4634)
[Webpacker] Everything's up-to-date. Nothing to do
Completed 200 OK in 246ms (Views: 47.0ms | ActiveRecord: 0.8ms | Allocations: 29844)
  

Где я ошибаюсь? Почему не byebug работает?

Комментарии:

1. Куда ты на самом деле звонишь byebug ?

2. В LoginController, post_login, я снова отредактировал, чтобы вы могли видеть это выше.

Ответ №1:

В вашем выводе журнала задевается контроллер UsersController#create, а не LoginController#post_login . Вам нужно либо изменить форму, чтобы попасть в этот контроллер, либо вместо этого вставить свой byebug в действие UsersController#create .

 Processing by UsersController#create as JS
  

Комментарии:

1. Рад помочь! Поверьте мне, когда я говорю, что мы все делали это не раз 🙂