gpt4 book ai didi

ruby-on-rails - 一些帮助找出日志中显示的与 ruby​​ on rails favicon 相关的错误

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:07 25 4
gpt4 key购买 nike

网站工作正常,但我注意到这个错误出现在我的日志中。

Started GET "/favicon.ico" for 127.0.0.1 at 2012-01-10 12:03:54 +0000
Processing by UsersController#show as
Parameters: {"username"=>"favicon"}
User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."username" = 'favicon' LIMIT 1
Completed 500 Internal Server Error in 1ms

NoMethodError (undefined method `profile' for nil:NilClass):
app/controllers/users_controller.rb:32:in `show'

Rendered /Users/greg/.rvm/gems/ruby-1.9.3-p0@devvo/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.3ms)
Rendered /Users/greg/.rvm/gems/ruby-1.9.3-p0@devvo/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.0ms)
Rendered /Users/greg/.rvm/gems/ruby-1.9.3-p0@devvo/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (5.0ms)

每当调用我的配置文件表时似乎都会发生:

Started GET "/favicon.ico" for 127.0.0.1 at 2012-01-10 12:14:10 +0000
Processing by UsersController#show as
Parameters: {"username"=>"favicon"}
User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."username" = 'favicon' LIMIT 1
Completed 500 Internal Server Error in 1ms

NoMethodError (undefined method `profile' for nil:NilClass):
app/controllers/users_controller.rb:32:in `show'

用户 Controller :

class UsersController < ApplicationController

before_filter :correct_user, :only => [:edit, :update]
before_filter :logged_in_now, :only => [:settings]


def new
@user = User.new
@title = "Practice"
end

def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
@user.build_profile.save #same as Profile.new(:user_id => @user.id)
login @user
UserMailer.join_confirmation(@user).deliver
format.js { render :js => "window.location = '#{root_path}'" }
# flash[:notice] = "Welcome!"
else

format.js { render :form_errors }
end
end
end


def show

@user = User.find_by_username(params[:username])
@profile = @user.profile

end

def update
respond_to do |format|
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
login @user
format.js { render :js => "window.location = '#{settings_account_path}'" }
flash[:success] = "Profile updated"
else
format.js { render :form_errors }

end
end
end

def edit

end

def settings
@user = current_user
#redirect_to settings_account_path
end

def account
@user = current_user
end

private

# def authenticate
# deny_access unless logged_in?
# end

def correct_user
@user = User.find(params[:id])
redirect_to root_path unless current_user?(@user)
end

def logged_in_now

redirect_to root_path if !logged_in?

end


end

显示 View :

<%= @profile.motd %> <br />
<%= @profile.first_name %> <br />
<%= @profile.last_name %> <br />
<%= @profile.user_id %> <br />
<%= @user.id %> <br />
<%= @user.username %> <br />
<%= @user.email %><br />
Star sign: <%= @profile.birthday.zodiac_sign %>

路线:

Swoggo::Application.routes.draw do

resources :users
resources :sessions
resources :passwords
resources :profiles


root :to => "users#new"
match 'success' => "users#success"
match 'login' => "sessions#new"
match 'logout' => "sessions#destroy"
match 'reset_password' => "passwords#new"
match 'setup_new_password' => "passwords#edit"
match 'settings', :to => "users#settings"


match "/settings/account", :to => "users#account"
match "/settings/edit_profile", :to => "profiles#edit_profile"


match '/:username', :controller => 'users', :action => 'show'

不太清楚为什么它对网站图标感兴趣。

感谢任何建议。

亲切的问候

最佳答案

看起来你有一个匹配/:username 的包罗万象的路由指向你的用户 Controller 。因此,当有人点击/favicon.ico 时,它会转到 Controller ,但找不到具有该用户名的用户。

首先,在您的用户 Controller 中,如果找不到用户名,您应该发回 404。您可以轻松地添加爆炸来执行此操作:

User.find_by_username!(params[:username])

但是浏览器在那里寻找网站图标是很正常的(因为它是默认位置)。我会在路由文件中为网站图标添加路由和/或设置 favicon_link_tag在您的 application.html.erb 中指向您的网站图标所在的位置。

关于ruby-on-rails - 一些帮助找出日志中显示的与 ruby​​ on rails favicon 相关的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8803136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com