0

MongoDB と mongoid を使用して、Ruby on Rails でモデルを作成しています。ユーザー、ストア、レビューの 3 つのモデルがあります。レビューはユーザーとストアに属します。

class Review
  include Mongoid::Document

  field :rating, type: Float
  field :body, type: String

  belongs_to :user
  belongs_to :store

  def self.is_unique
    where(user: user, store: store).exists?
  end

end

レビューにストアとユーザーのIDが含まれているかどうかを確認することで、ユーザーがストアのレビューを既に送信しているかどうかを確認しようとしています。ただし、これらの外部キーから ID を取得するのに問題があるようです。上記のコードから、次のエラー メッセージが表示されます。

Review:Class の未定義のローカル変数またはメソッド「user」

奇妙なことに、ユーザー フィールドとストア フィールドを追加すると、同様のエラーが発生します。

4

1 に答える 1

1

Review インスタンスではなく、Review クラス ( Review.is_uniquedef self.is_uniqueとして呼び出される) でメソッドを定義しています。あなたが望むのは、 を定義することだと思いますdef is_unique。そうすればReview.new(user: user, store: store).is_unique、役立つ答えを得ることができます。

于 2013-10-31T22:44:25.147 に答える