2012-04-26 19 views
0

私はusersテーブルを持っています。それは "user_type"フィールドを含んでいます。 私はuser.rbファイルに次のスコープSTMTSを追加しました:RoRスコープの問題

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

は、私は、ビューを作成し、私はそれが彼の従業員をリストしたいと思います。私が得る、

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

をしかし、「nilのための未定義のメソッド `uemployeeを」:NilClass」

を私が間違って何をやっている。ここ は、私が使用しようとしているコードのですか?

+0

あなたのオームは何ですか? – apneadiving

+0

これはオームですか? "従業員ID: has_many:wrequests has_many:statuses – Reddirt

答えて

0

nilである

おかげで、あなたがこれやってみたかったように見える:

<% User.uemployee.each do |user| %> 

をしかし、これは悪い習慣であると考えられています。

# in a controller's action 
@users = User.uemployee 

#in a view 
<% @users.uemployee.each do |user| %> 

しかし、たとえこれが最善のアプローチではありません:あなたはそれをあなただけのサイクルをコントローラとビュー内のデータを準備する必要があります。あなたは( @せずに、現在のユーザーは、単純な user変数として利用できるようになります、)特定のユーザーに関する情報を示していたファイル views/users/_user.html.erbを作成した場合、あなたは簡単に書くことができます。

# in a view 
<%= render @users %> 
# remember, @users variable was set in your controller 

その後、Railsの意志のサイクルを介してすべてのユーザーは@users変数の「内部」にあり、1つずつ表示します。

0

あなた@usersコレクションは