用户详细信息的Rails角色持久性变量

时间:2015-04-21 18:56:37

标签: ruby-on-rails ruby-on-rails-4 devise

我有两种类型的用户User和Host。每个主机也是用户,但每个用户都不是主机。

  

用户(id,name,is_host = true / false)

     

主机(id,name,user_id)

在登录后的Devise中我们如何使用current_user变量avaliable我想在is_host = true

时创建一个可用的类似变量

我有一个名为Host :: HostController的Base控制器,它有一个范围路径。

拥有此类变量的最佳做法是什么?

1 个答案:

答案 0 :(得分:2)

我在application_controller.rb中添加以下代码:

class ApplicationController < ActionController::Base
  helper_method :current_host

  def current_host
    if current_user && current_user.is_host
      current_user.host
    else
      nil
    end
  end
end

这将返回正确的Hostnil,具体取决于用户是否是主持人。将其定义为helper_method可让您在视图中使用它!

修改
或者你可以使用三元!

def current_host
  current_user && current_user.is_host ? current_user.host : nil
end