如何使用设计用户访问列
how to access column using devise user
我使用新的迁移添加了以下列:
class AddDetailsToUser < ActiveRecord::Migration
def change
add_column :users, :userNum, :integer
add_column :users, :username, :string
add_column :users, :fname, :string
add_column :users, :surname, :string
add_column :users, :isTeacher, :boolean, :default => false
end
end
现在 application.html.erb 我想做这样的事情,它试图仅在用户实际上是老师时才显示按钮 :
<% if @user.isTeacher? %>
<div class="buttons">
<%= button_to(etc ..) %>
</div>
<% end %>
但问题是我收到以下错误消息:
undefined method `isTeacher?' for nil:NilClass
如何解决这个问题?
感谢您的宝贵时间
设计有帮助程序让您的视图(和控制器)访问您的用户设备模型 (devise helper)。
在您的情况下,您可以使用 current_user.isTeacher
Devise 为您提供了一个名为 current_your_devise_model_name
的辅助方法,如果您的设计模型是 user 则 current_user
,如果您的设计模型是 admin 则 current_admin
。在您的情况下,您在@user 中没有任何价值。您基本上需要更新您的 if 条件。我想您需要在用户登录并且是老师时显示此按钮。所以稍微改变一下你的代码
<% if current_user.present? && current_user.isTeacher? %>
<div class="buttons">
<%= button_to(etc ..) %>
</div>
<% end %>
您的代码采用 application.html.erb
布局,这意味着它将在用户未登录且使用相同布局的那些页面中执行。对于更多用户登录方法,您应该检查 this link,因为我们不知道您当前正在使用哪个 rails 版本。
我使用新的迁移添加了以下列:
class AddDetailsToUser < ActiveRecord::Migration
def change
add_column :users, :userNum, :integer
add_column :users, :username, :string
add_column :users, :fname, :string
add_column :users, :surname, :string
add_column :users, :isTeacher, :boolean, :default => false
end
end
现在 application.html.erb 我想做这样的事情,它试图仅在用户实际上是老师时才显示按钮 :
<% if @user.isTeacher? %>
<div class="buttons">
<%= button_to(etc ..) %>
</div>
<% end %>
但问题是我收到以下错误消息:
undefined method `isTeacher?' for nil:NilClass
如何解决这个问题?
感谢您的宝贵时间
设计有帮助程序让您的视图(和控制器)访问您的用户设备模型 (devise helper)。
在您的情况下,您可以使用 current_user.isTeacher
Devise 为您提供了一个名为 current_your_devise_model_name
的辅助方法,如果您的设计模型是 user 则 current_user
,如果您的设计模型是 admin 则 current_admin
。在您的情况下,您在@user 中没有任何价值。您基本上需要更新您的 if 条件。我想您需要在用户登录并且是老师时显示此按钮。所以稍微改变一下你的代码
<% if current_user.present? && current_user.isTeacher? %>
<div class="buttons">
<%= button_to(etc ..) %>
</div>
<% end %>
您的代码采用 application.html.erb
布局,这意味着它将在用户未登录且使用相同布局的那些页面中执行。对于更多用户登录方法,您应该检查 this link,因为我们不知道您当前正在使用哪个 rails 版本。