Ruby on Rails - 无法看到控制台消息

时间:2014-05-06 11:13:24

标签: ruby-on-rails ruby

这可能是一个非常愚蠢的问题,但我是Ruby on Rails的新手...

如果在.rb文件中,我写了类似

的内容
puts "hello"

我在哪里可以查看输出?我在shell中运行rails console,代码运行时没有出现消息。它也没有出现在Chrome控制台中。

谢谢!

编辑我想我的代码中存在问题,我有:

login.html.erb:

<% @page_title = "UserAuth | Login" -%>
<div class= "Sign_Form">
  <h1>Log in</h1>
    <%= form_tag "/login", :sessions => :login_attempt do %>
    <p>Username or Email:</br> <%= text_field_tag(:username_or_email) %></p> 
    <p>Password:</br> <%= password_field_tag :login_password %></p> 
    <%= submit_tag("Log In") %>
  <% end %>
</div>

session_controller.rb:

class SessionsController < ApplicationController
before_filter :authenticate_user, :only => [:home, :profile, :setting]
before_filter :save_login_state, :only => [:login, :login_attempt]
  def login
    #Login Form
  end
  def login_attempt
      authorized_user = User.authenticate(params[:username_or_email],params[:login_password])
      puts "authorized_user " + authorized_user + "\n" # this does not run
      if authorized_user
        session[:user_id] = authorized_user.id
        flash[:alert] = "Wow Welcome again, you logged in as #{authorized_user.username}"
        redirect_to(:action => 'home')
      else
        flash[:alert] = "Invalid Username or Password"
        flash[:color]= "invalid"
        render "login"  
      end
    end
    def logout
      session[:user_id] = nil
      redirect_to :action => 'login'
    end
end

2 个答案:

答案 0 :(得分:2)

您将在server console运行rails server命令

的地方看到它

答案 1 :(得分:1)

这取决于你把它放在哪里。例如,在模型中:

class User < ActiveRecord::Base

  # Methods
  def hello
     puts "hello"
  end

end

当您运行rails控制台并拥有一个用户时,您可以调用user.hello,它会将“hello”输出到您的rails控制台。当您使用rails server命令运行服务器时,您将在与启动服务器的位置相同的窗口中看到。