Je continue de rencontrer des erreurs en utilisant ce code.Méthode non définie `users 'pour # <Post: 0xaa09664>
def create
new_post
@post.save!
(@post.users.uniq - [current_user]).each do |user|
Notification.create(recipient: user, actor:current_user, action: "posted", notifiable: @post)
end
redirect_to post_index_path
end
Je ne sais pas pourquoi l'erreur se produit mais le message d'erreur indique que j'utilise « utilisateur » au lieu de « utilisateurs » mais je ne peux pas utiliser uniq faire. J'ai aussi plus d'erreurs à faire.
Edit: Voici mon message modèle:
class Post < ActiveRecord::Base
has_many :comments
belongs_to :user
belongs_to :subject
validates_presence_of :content
end
J'ai aussi un modèle de sujets:
class Subject < ActiveRecord::Base
has_many :posts
has_many :users, through: :posts
validates_presence_of :name
validates_uniqueness_of :name
end
modèle utilisateur:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
validates :name, presence: true
has_many :listings, dependent: :destroy
has_many :purchasing, class_name: "Transaction", foreign_key: "buyer_id", dependent: :destroy
has_many :sell, class_name: "Transaction", foreign_key: "seller_id", dependent: :destroy
has_many :purchased, class_name: "Archive", foreign_key: "buyer_id", dependent: :destroy
has_many :sales, class_name: "Archive", foreign_key: "seller_id", dependent: :destroy
has_many :selling_rooms, class_name: "Room", foreign_key: "seller_id", dependent: :destroy
has_many :buying_room, class_name: "Room", foreign_key: "buyer_id", dependent: :destroy
has_many :comments, through: :posts
has_many :posts
has_many :notifications, foreign_key: :recipient_id
def can_buy?(listing_price)
if self.points >= listing_price
true
else
false
end
end
def withdraw(listing_price)
self.points -= listing_price
end
def purchasing_list
purchasing.includes(:seller, :listing)
end
def purchased_list
purchased.includes(:seller, :listing)
end
def sell_list
sell.includes(:seller, :listing)
end
def sales_list
sales.includes(:seller, :listing)
end
end
ce que vous essayez d'accomplir? Une publication appartient logiquement à un utilisateur, sauf si vous avez quelque chose de différent dans votre application. Donc, vous ne pouvez pas appeler la méthode 'users' sur un objet post –
Bonjour et bienvenue dans Stack Overflow. Pouvez-vous nous donner une partie du code lié à cela? par exemple, comment un message est-il lié à un utilisateur? Un message a-t-il plus d'un utilisateur ou un seul? pouvez-vous nous montrer le message d'erreur complet? Pouvez-vous regarder dans les journaux de votre serveur (généralement 'log/development.log' ou sur l'écran de la console) et nous montrer les trois ou quatre lignes de noms de fichiers qui viennent directement après le message d'erreur? (ceux-ci nous aident à identifier la ligne de code exacte en lançant l'erreur). –
Veuillez inclure les modèles Post et User (au moins les parties pertinentes) –