如何在 mailboxer_notifications table 中设置 user_type?
How can I set the user_type in the mailboxer_notifications table?
我的问题是,当用户相互回复时,很难通过 SQL 检查数据库并区分用户类型(例如管理员和个人用户)。默认值只是 "User",作为一个字符串。
在检查邮箱程序代码时,我知道它调用了 Conversations 控制器中的 "reply" 方法。这是代码的相关部分:
def reply
current_user.reply_to_conversation(conversation, message_params[:body])
flash[:notice] = "Message was sent."
redirect_to conversation_path(conversation)
end
据此,我想做类似的事情:
conversation.messages.sender_type = params[:custom].present? ? params[:custom] : "Admin"
但这行不通,正如它所说 "unknown sender type method"。我这样列出它是因为,基于邮件拳击手 gem 代码,消息 belongs_to 对话,消息模型链接到 table 和我想要更改的列值。
基于此,我应该修改什么才能拥有它,以便当我回复用户时调用回复操作,然后对话 "calls" 消息本身将 sender_type 设置为我想要的值?
在您提出的代码中,您正在对消息数组调用 sender_type
,但该方法存在于 Mailboxer::Message
模型中。由于它是多态关联 see code of model here,Mailboser::Message
的 sender
将是用于创建消息的用户(在本例中为 current_user
)。
所以我猜你在找什么,是获取发件人的 user_type
以获取对话的特定消息。
所以这可以通过执行以下操作来完成(在此示例中,让我们获取发送给定对话的第一条消息的用户的 user_type
:
conversation.messages.first.sender.user_type
我的问题是,当用户相互回复时,很难通过 SQL 检查数据库并区分用户类型(例如管理员和个人用户)。默认值只是 "User",作为一个字符串。
在检查邮箱程序代码时,我知道它调用了 Conversations 控制器中的 "reply" 方法。这是代码的相关部分:
def reply
current_user.reply_to_conversation(conversation, message_params[:body])
flash[:notice] = "Message was sent."
redirect_to conversation_path(conversation)
end
据此,我想做类似的事情:
conversation.messages.sender_type = params[:custom].present? ? params[:custom] : "Admin"
但这行不通,正如它所说 "unknown sender type method"。我这样列出它是因为,基于邮件拳击手 gem 代码,消息 belongs_to 对话,消息模型链接到 table 和我想要更改的列值。
基于此,我应该修改什么才能拥有它,以便当我回复用户时调用回复操作,然后对话 "calls" 消息本身将 sender_type 设置为我想要的值?
在您提出的代码中,您正在对消息数组调用 sender_type
,但该方法存在于 Mailboxer::Message
模型中。由于它是多态关联 see code of model here,Mailboser::Message
的 sender
将是用于创建消息的用户(在本例中为 current_user
)。
所以我猜你在找什么,是获取发件人的 user_type
以获取对话的特定消息。
所以这可以通过执行以下操作来完成(在此示例中,让我们获取发送给定对话的第一条消息的用户的 user_type
:
conversation.messages.first.sender.user_type