我有一个用户表。它包含一个字段“user_type”。 我将以下范围stmts添加到user.rb文件:
scope :uemployee, where(:user_type => 'employee')
scope :uclient, where(:user_type => 'client')
scope :ucontractor, where(:user_type => 'contractor')
我创建了一个视图,我想列出他的员工。 这是我正在尝试使用的代码:
<% @users.uemployee.each do |user| %>
但是,我得到“未定义的方法`uemployee'为nil:NilClass”
我做错了什么?
由于
答案 0 :(得分:0)
您的@users
收藏品为零
答案 1 :(得分:0)
看起来你想这样做:
<% User.uemployee.each do |user| %>
但这被认为是一种不好的做法。您必须在控制器中准备数据,并且视图只需循环显示:
# in a controller's action
@users = User.uemployee
#in a view
<% @users.uemployee.each do |user| %>
但即使这不是最好的方法。如果您创建文件views/users/_user.html.erb
,其中显示有关特定用户的信息(当前用户将作为简单的user
变量提供,而不是@
),那么您只需编写:
# in a view
<%= render @users %>
# remember, @users variable was set in your controller
然后Rails将循环遍历@users
变量“内部”的所有用户并逐个显示它们。