我正在使用Mailboxer,以便用户可以回复我网站中的帖子。我的网站有两种类型的帖子模型,用户可以回复,请求和优惠。
这是我的消息控制器:
class MessagesController < ApplicationController
# GET /message/new
def new
@request = Request.find(params[:request])
@message = current_user.messages.new
@user = @request.user
end
def reply
@conversation ||= current_user.mailbox.conversations.find(params[:id])
end
# POST /message/create
def create
@user = User.find(params[:user])
@body = params[:body]
@subject = params[:subject]
current_user.send_message(@user, params[:body], params[:subject])
flash[:notice] = "Message has been sent!"
redirect_to :conversations
end
end
在new
操作中,我使用@request,但如果我回复优惠帖,我需要使用@offer变量。有没有办法可以使用if语句在@offer和@request之间进行选择,具体取决于调用new
动作的视图?这是解决这个问题的最好方法吗?
答案 0 :(得分:0)
这不是世界上最优雅的东西,但这样简单应该有用。
if params[:request]
@request = Request.find(params[:request])
else
@offer = Offer.find(params[:offer])
end