2016-09-21 14 views
0

このコードを使用してエラーが発生し続けます。#<投稿: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 
+0

中(user.rb)ユーザーモデルを持っていることは理にかなって?あなたのアプリケーションで何か違うものがない限り、投稿は論理的に 'ユーザ 'に属します。だから、投稿オブジェクトに対して 'users'メソッドを呼び出すことはできません –

+0

こんにちは。これに関連するコードをいくつか教えていただけますか?例えば、投稿はユーザーにどのように関連していますか?投稿には複数のユーザーが含まれていますか?完全なエラーメッセージを表示できますか?サーバのログ(普通は 'log/development.log'やコンソール画面)を見て、エラーメッセージの直後に来る3行か4行のファイル名を表示できますか? (これらは、エラーを投げるコードの正確な行を特定するのに役立ちます)。 –

+0

ポストおよびユーザーモデル(少なくとも関連する部分)を含めてください –

答えて

1

私はあなたがしませんでした推測しています関係を正しい方法で宣言してください。 はあなたのPostモデルにありますか?:

has_one :user 

またはあなたはそれが最初のものであれば、現在の動作が期待されている

has_many :users 

を宣言しました。ご希望の状況のた​​めに、それは論理的に

has_many :posts 

とあなたが達成しようとしているものをお使いPostモデル

belongs_to :user 
+0

編集に示されているように接続した被験者モデルのhas_many:usersを持っている – CJK

関連する問題