我有一個用戶模型和一個電子郵件模型。用戶可以創建電子郵件並接收它們。收到的電子郵件實際上只是一封電子郵件,但加入到不同領域的用戶。我的設置位於下方,但無法正常工作。當我在創建電子郵件的用戶上調用received_messages(並沒有收到它)時,他也會看到一條消息。 這是可能的嗎?有效記錄虛擬模型
class User < ActiveRecord::Base
has_many :mail_messages
has_many :received_messages, class_name: 'MailMessage', foreign_key: 'to_id'
end
class MailMessage < ActiveRecord::Base
belongs_to :user
emd
我確實創造了這些消息控制器:
class ReceivedEmailsController < ApplicationController
before_filter :authenticate_user!
def index
messages = current_user.received_messages
if messages
render json: messages, each_serializer: MailMessageSerializer, status: :ok
else
render json: :nothing, status: :not_found
end
end
def show
message = current_user.received_messages.where(id: params[:id]).first
if message
render json: message, serializer: MailMessageSerializer, status: :ok
else
render json: :nothing, status: :not_found
end
end
end
測試:
describe ReceivedEmailsController do
let!(:main_user) { Fabricate :user }
let!(:receiving_user) { Fabricate :user }
let!(:message) { Fabricate :mail_message, user_id: main_user.id, to_id: receiving_user.id }
describe 'get index' do
it 'should give not found when there are no emails received' do
main_user.confirm!
sign_in main_user
get :index
JSON.parse(response.body)['received_emails'].size.should eq 0
end
end
end
而不是0,我得到1回,相同的消息,我回來時做通過receive_user進行測試。我想通過receiver_user獲取消息,但不通過main_user。
我不確定是否可以這樣做,是否使用示波器,甚至我不知道的其他東西。
謝謝。
我認爲您希望用戶和消息之間的連接表允許多個收件人,其中每一個都可以是「to」,「cc」或「bcc」。 –