用户最多可以进入一个房间

时间:2015-02-04 18:54:01

标签: ruby-on-rails

我正在聊天。我希望用户不要同时输入2个以上的房间。

所以我做了'进入'模型。这个belongs_to个用户和房间。用户has_one输入,房间has_many进入。

在ApplicationController中,存在current_user

def current_user
  return unless session[:user_id]
  @current_user ||= User.find(session[:user_id])
end

我尝试通过以下方式检查用户是否有enter

def free?
  return unless session[:user_id]
  if current_user.enter.room.count == 1 then
    return true
  else
    return false
  end
end

这也在ApplicationController中。

接下来,我在<% if logged_in? && free? %>中写了views/top/index.html来显示&#39;加入这个会议室&#39;按钮仅用于登录免费用户。

当我运行时,我有以下错误。

NoMethodError at/ undefined method 'free?' for #<#<Class:...>...>

我自己无法解决这个问题......我该怎么办?

1 个答案:

答案 0 :(得分:1)

你可以免费创建吗?用户对象的方法。

class User
    def free?
      enter.room.count == 1
    end
end

在视图内部之后调用this,current_user.free?

但如果你检查输入对象是否存在这个用户和房间的组合会更好。