2012-04-26 95 views
0

我有一个用户表。它包含一个字段“user_type”。 我增加了以下范围支杆的user.rb文件:RoR范围问题

scope :uemployee, where(:user_type => 'employee') 
scope :uclient, where(:user_type => 'client') 
scope :ucontractor, where(:user_type => 'contractor') 

我创建了一个观点,我想它列出他的员工。 这里是代码我试图使用方法:

<% @users.uemployee.each do |user| %> 

但是,我得到“为无未定义的方法`uemployee”:NilClass”

我在做什么错?

感谢

+0

什么是你的orm? – apneadiving 2012-04-26 20:11:14

+0

这是orm吗? belongs_to:client has_many:assigned_worequests,:class_name =>“worequest”,:foreign_key =>“employee_id” has_many:worequests has_many:状态 – Reddirt 2012-04-26 20:54:01

回答

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变量的“内部”并逐个显示它们。

0

@users集合是零