我想给我的用户添加一个新的布尔属性:is_student
我的项目有两种类型的用户:学生&官能如果是学生,is_student应该为真,如果是教师,is_stedent将为假。
为了添加这个新参数,我在UsersController:中编写了以下代码
def user_params
params[:user].permit(:email, :password, :is_student)
end
我在routes.rb中写了这段代码,以覆盖它:
resources :users, controller: :users, only: :create
如这个堆栈溢出示例所示:rails 4和thoughtbot/cleasure-向用户模型添加字段
这是我的user.rb类,用来添加我的新属性"is_student":
class User < ActiveRecord::Base
include Clearance::User
@is_student = true
def is_student?
return @is_student
end
end
现在,我把它设置为真,只是为了看看它能起作用,而现在不行。我可以看到它不起作用,因为当我运行rails应用程序时,我将其作为主页:
<% if signed_in? %>
<% if current_user.is_student? %>
<p> signed in and is student </p>
<% end %>
<p> signed in but not student </p>
<% else %>
<p> not signed in </p>
<% end %>
从这个代码:我看到了";登录但不是学生";即使is_student应该默认为true。有人能告诉我我做错了什么吗?
在user.rb中,我只需要替换"具有":"在我的is_student?方法
def is_student?
return :is_student
end