2

次のようなビューで単純なスコープを実現する方法:

<% if @user.admin %>

ここで、「admin」は user.rb の次のスコープです。

scope :admin, where(role: "admin")

ユーザーテーブルに文字列であるロール列があります

後で呼び出すことができる別のモデル(ただし、デバイスユーザーモデルではない)で同じことを以前に行いました

<% if objective.completed %>

目標で each メソッドを呼び出した直後。

ただし 、ユーザーモデルに対してまったく同じことを行うと、

undefined method `admin' for #<User:0x00000107e39038>

どうすればそれを機能させることができますか?私は何時間も掘っています。

スコープのない回避策については、次を試してください。

<% if @user.role == "admin" %>
4

2 に答える 2

0

スコープは通常、クラス レベルのメソッドですが、インスタンスでアクセスするにはどうすればよいでしょうか。それが、エラーが未定義のメソッドと言う理由だと思います。

于 2013-09-18T13:26:22.450 に答える