Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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 on rails 仅当用户是专业用户时才设计公共用户页_Ruby On Rails_Devise - Fatal编程技术网

Ruby on rails 仅当用户是专业用户时才设计公共用户页

Ruby on rails 仅当用户是专业用户时才设计公共用户页,ruby-on-rails,devise,Ruby On Rails,Devise,我有一个带有pro boolean列的Desive用户模型。我想为他们每个人建立一个公共页面,但只有在用户是pro的情况下。我怎样才能做到这一点?这很简单 首先,您需要更改user.rb模型,并将新列添加到attr_accessible中,使其看起来像 attr_accessible :email, :password, :password_confirmation, :remember_me, :pro 现在,您可以使用以下语句来测试用户是否是“专业人士” if current_user.p

我有一个带有pro boolean列的Desive用户模型。我想为他们每个人建立一个公共页面,但只有在用户是pro的情况下。我怎样才能做到这一点?

这很简单

首先,您需要更改user.rb模型,并将新列添加到attr_accessible中,使其看起来像

attr_accessible :email, :password, :password_confirmation, :remember_me, :pro
现在,您可以使用以下语句来测试用户是否是“专业人士”

if current_user.pro
    #some page display code
end

您还可以在显示公共页面的控制器中使用before_过滤器,您需要更多地阅读Desive文档,或者查看此

如果您构建公共页面,您可能会使用
User.find(params[:id])
获取用户信息。将其更改为
User.where(:id=>params[:id],:pro=>true)。首先
。然后检查用户是否存在,或者我们只有零