このコードを使用してエラーが発生し続けます。#<投稿: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
エラーが発生した理由を私はわかりませんが、エラーメッセージは、私が代わりに「ユーザー」の「ユーザー」を使用しますが、私はそれをやってUNIQ使用することはできません示唆しています。私はまた、それを行うより多くのエラーを取得します。編集
:私も対象モデルを持っている
class Post < ActiveRecord::Base
has_many :comments
belongs_to :user
belongs_to :subject
validates_presence_of :content
end
:ここに は私の記事のモデルである
class Subject < ActiveRecord::Base
has_many :posts
has_many :users, through: :posts
validates_presence_of :name
validates_uniqueness_of :name
end
Userモデル:
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
中(user.rb)ユーザーモデルを持っていることは理にかなって?あなたのアプリケーションで何か違うものがない限り、投稿は論理的に 'ユーザ 'に属します。だから、投稿オブジェクトに対して 'users'メソッドを呼び出すことはできません –
こんにちは。これに関連するコードをいくつか教えていただけますか?例えば、投稿はユーザーにどのように関連していますか?投稿には複数のユーザーが含まれていますか?完全なエラーメッセージを表示できますか?サーバのログ(普通は 'log/development.log'やコンソール画面)を見て、エラーメッセージの直後に来る3行か4行のファイル名を表示できますか? (これらは、エラーを投げるコードの正確な行を特定するのに役立ちます)。 –
ポストおよびユーザーモデル(少なくとも関連する部分)を含めてください –