我有两种类型的用户User和Host。每个主机也是用户,但每个用户都不是主机。
用户(id,name,is_host = true / false)
主机(id,name,user_id)
在登录后的Devise中我们如何使用current_user变量avaliable我想在is_host = true
我有一个名为Host :: HostController的Base控制器,它有一个范围路径。
拥有此类变量的最佳做法是什么?
答案 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
这将返回正确的Host
或nil
,具体取决于用户是否是主持人。将其定义为helper_method
可让您在视图中使用它!
修改强>
或者你可以使用三元!
def current_host
current_user && current_user.is_host ? current_user.host : nil
end