我想为我的用户添加一个新的布尔属性:is_student
我的项目有两种类型的用户:学生和教师。如果是学生 is_student 应该是真的,如果是教师 is_student 应该是假的。
为了添加这个新参数,我在 UsersController 中编写了这段代码:
def user_params
params[:user].permit(:email, :password, :is_student)
end
我在 routes.rb 中写了这段代码来覆盖它:
resources :users, controller: :users, only: :create
如此堆栈溢出示例所示:rails 4 和thoughtbot/clearance - 向用户模型添加字段
这是我的 user.rb 类来添加我的新属性“is_student”:
class User < ActiveRecord::Base
include Clearance::User
@is_student = true
def is_student?
return @is_student
end
end
现在,我将其设置为 true 只是为了查看它是否有效,而目前它没有。我可以看到它不起作用,因为当我运行我的 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。谁能告诉我我做错了什么?