我一直在为这个问题做了一天半的时间。我正在使用Mailboxer gem来创建一个非常简洁的消息传递系统;一个与样本相同的 - https://github.com/RKushnir/mailboxer-app - 只是从这个宝石开始。
我确实让两个存储库在我的计算机上彼此相邻。特定于邮箱的模型,迁移,初始化程序,我能找到的一切。这包括用户模型,name
操作。我甚至尝试使用Notification
轻松使用attr_accessible
模型。
数据库完全相同。
当我在示例应用程序中保存对话后尝试在控制台/种子中创建消息时,这很容易。保存对话后,我运行:
n = Message.new
n.sender = User.find(1)
n.subject = 'Hi'
n.body = 'Hello there.'
n.conversation_id = Conversation.find(1).id
n.save
繁荣。它工作得很漂亮。另一方面,我的应用程序功能相同;直到它到达sender
字段。
当我尝试设置发件人时:
n.sender = User.find(1)
我收到此错误:NoMethodError: undefined method 'sender=' for #<Message:0x00000101708eb8>
为什么?
这让我发疯了。如果有人能提供一些帮助,我真的很感激。提前谢谢。
消息/通知架构:
create_table "notifications", force: true do |t|
t.string "type"
t.text "body"
t.string "subject", default: ""
t.integer "sender_id", null: false
t.integer "conversation_id"
t.boolean "draft", default: false
t.datetime "updated_at", null: false
t.datetime "created_at", null: false
t.integer "notified_object_id"
t.string "notified_object_type"
t.string "notification_code"
t.string "attachment"
t.boolean "global", default: false
t.datetime "expires"
end
add_index "notifications", ["conversation_id"], name: "index_notifications_on_conversation_id", using: :btree
这是gem生成的内容,它也与示例应用程序相同。
答案 0 :(得分:0)
看看Mailboxer gem sent_message方法here,你可能会觉得它很有帮助。
您还可以使用send_message方法内置的邮箱发送消息
sender = User.find(1)
receiver = User.find(2)
sender.send_message(receiver,"Subject", "Body")