这可能是一个非常愚蠢的问题,但我是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
答案 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
命令运行服务器时,您将在与启动服务器的位置相同的窗口中看到。