ruby-on-rails - RoR : Accessing models from with application. rb

标签 ruby-on-rails ruby

我正在开发一个简单的网络应用程序,它有一个用户模型和角色模型(以及其他),以及一个包含许多 Controller 的管理部分。我想使用 before_filter 来检查 session 中用户的用户是否具有“can_access_admin”标志。

我在 application.rb 中有这段代码:

定义检查角色 @user = session[:user]

如果@user.role.can_access_admin.nil? || !@user.role.can_access_admin render :text => "您当前的角色不允许访问管理区域。" 返回 结尾 结束

然后我将这段代码放在其中一个管理 Controller 中:

类 Admin::BlogsController < ApplicationController before_filter :check_role

定义列表 @blogList = Blog.find(:all) 结尾 结束

当我尝试查看列表操作时出现此错误:

用户的未定义方法“角色”...

有人知道我必须做什么才能让角色关联在 application.rb 中被识别吗? (请注意,关联已正确配置,@user.role 在我尝试使用它的其他任何地方都工作正常)

最佳答案

只是一个猜测,但您的 session [:user] 似乎只是存储 id,您需要这样做:

@user = User.find(session[:user])

或类似的东西从数据库中获取用户(连同它的关联)。

最好在前过滤器中执行上述操作。

关于ruby-on-rails - RoR : Accessing models from with application. rb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/141620/

相关文章:

ruby - 检查 Ruby 上的浏览​​器控制台输出

ruby-on-rails - Rails ActionController::Live 无需重新启动开发服务器

ruby-on-rails - 多个模型的 Doorkeeper 资源所有者凭证流

ruby - & in 参数的含义

ruby-on-rails - 如何在 ROR (Ruby) 中显示 PDF?

ruby - 在 Windows Vista 上运行 Sinatra 应用程序时出现错误消息

ruby-on-rails - Docker Rails运行服务器

ruby-on-rails - 运行 rails server 时克隆的项目不会启动

ruby-on-rails - Google API调用使网页变慢

ruby - 如何从 Ruby 2.0 中的字符串数组中获取值