我想向我的用户添加一个新的布尔属性: 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 and thoughtbot/clearance - adding fields to the user model
这是我添加新属性“is_student”的user.rb类:
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。谁能告诉我我做错了什么?
发布于 2020-11-14 04:05:54
在user.rb中,我只需要在我的is_student中将"@“替换为":”?方法。
def is_student?
return :is_student
endhttps://stackoverflow.com/questions/64827045
复制相似问题