2012-04-26 96 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集合是零