我想实现用户 A 可以向用户 B 发送消息的功能。假设用户 A 正在查看用户 B 的个人资料并单击发送消息链接,我如何确保只有用户 B 会收到消息。换句话说,在创建操作中如何捕获用户 B?我能够在新操作中捕获用户 B,但不能在创建操作中捕获。这是我到目前为止所拥有的:
class MessagesController < ApplicationController
def new
@message = Message.new
@recipient = User.find_by_identifier!(params[:id])
end
def create
@message = Message.new(params[:message])
@message.recipient = @recipient
@message.sender = current_user
if @message.save
flash[:notice] = "Message has been sent"
redirect_to messages_path(:mailbox=>:sent)
else
render :action => :new
end
end
end
因此,发送消息链接传入用户 B 的参数以执行新操作。因此@recipient
,在新操作中是用户 B,我能够显示用户 B 的姓名和图片。但@recipient
在创建动作中为零。如何确保创建操作中的@recipient 是用户 B?