Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 在rails应用程序上获取500个内部服务器错误(heroku日志已发布)_Ruby_Ruby On Rails 3_Heroku - Fatal编程技术网

Ruby 在rails应用程序上获取500个内部服务器错误(heroku日志已发布)

Ruby 在rails应用程序上获取500个内部服务器错误(heroku日志已发布),ruby,ruby-on-rails-3,heroku,Ruby,Ruby On Rails 3,Heroku,更新 我解决了。代码中的if语句存在一些问题 本地一切正常,但我不确定为什么会出错 我有我的rails应用程序,我正在尝试访问URL“/用户/用户名”,例如tbrown。这仅仅是由于未定义的方法“admin”或其他原因造成的吗?Admin_user已经在我的应用程序_controller.rb中定义,我有一个Admin_user.rb模型。这里是heroku日志和控制器 def admin_user? unless current_user && current_user

更新 我解决了。代码中的if语句存在一些问题

本地一切正常,但我不确定为什么会出错

我有我的rails应用程序,我正在尝试访问URL“/用户/用户名”,例如tbrown。这仅仅是由于未定义的方法“admin”或其他原因造成的吗?Admin_user已经在我的应用程序_controller.rb中定义,我有一个Admin_user.rb模型。这里是heroku日志和控制器

def admin_user?
    unless current_user && current_user.admin?
      redirect_to root_url
      return false
    end
  end
heroku原木

2013-03-20T08:05:55+00:00 app[web.1]: Started GET "/users/tbrown" for xx.xx.xx
.xx at 2013-03-20 08:05:55 +0000
2013-03-20T08:05:55+00:00 app[web.1]:
2013-03-20T08:05:56+00:00 app[web.1]:
2013-03-20T08:05:56+00:00 app[web.1]:     22:     <% end %></div>
2013-03-20T08:05:56+00:00 app[web.1]: ActionView::Template::Error (undefined met
hod `admin?' for nil:NilClass):
2013-03-20T08:05:56+00:00 app[web.1]:     23:     <% if current_user.admin? %>
 2013-03-20T08:05:56+00:00 app[web.1]:     21:     <span class="content2"><%= com
ment.comment_content %></span>
2013-03-20T08:05:56+00:00 app[web.1]:     24:     <%= link_to "delete", pos
t, method: :delete,

问题出在你的
app/views/posts/_post.html.erb
在线查看中:

<% if current_user.admin? %>


这假设当前_用户不是nil(即用户已登录)。您已经在控制器
admin\u user?
方法中针对该问题进行了防御性编码。最好是按照同样的思路实现一个helper方法(但没有重定向),并从视图中调用它。

谢谢,导致错误的是用户登录和注销的问题