Ruby on rails 未定义的方法'request';对于true:TrueClass

Ruby on rails 未定义的方法'request';对于true:TrueClass,ruby-on-rails,activerecord,rails-activerecord,Ruby On Rails,Activerecord,Rails Activerecord,我有一个带有嵌套路由的应用程序结构,其中提案属于请求,而请求有许多提案 当我执行一个send\u proposal方法时,我试图让它更新该建议所属的请求的状态,但我得到一个错误,该错误表示未定义的方法'request'为true:TrueClass 我采用这种方法的路线(我认为这并不重要)是: 这是我的发送建议方法,可以在我的建议控制器中找到: def send_proposal @proposal = Proposal.find(params[:id]) ProposalM

我有一个带有嵌套路由的应用程序结构,其中
提案
属于
请求
,而
请求
有许多
提案

当我执行一个
send\u proposal
方法时,我试图让它更新该
建议所属的
请求的
状态
,但我得到一个错误,该错误表示
未定义的方法'request'为true:TrueClass

我采用这种方法的路线(我认为这并不重要)是:

这是我的
发送建议
方法,可以在我的
建议
控制器中找到:

  def send_proposal
    @proposal = Proposal.find(params[:id])
    ProposalMailer.send_proposal_to_client(@proposal, @proposal.request.user).deliver_now
    @proposal = @proposal.update_attributes(status: "Sent to Client")
    @proposal.request = @proposal.request.update_attributes(archived: "Proposal Sent to Client") <<<<<<<<<ERROR CALLED ON THIS LINE
    flash[:notice] = "Your proposal has been sent to the client!"
  end
def发送建议书
@建议=建议.查找(参数[:id])
ProposalMailer.将建议发送给客户(@proposal,@proposal.request.user)。立即发送
@proposal=@proposal.update_属性(状态:“已发送到客户端”)
@proposal.request=@proposal.request.update_属性(存档:“发送给客户的提案”)是以下各项的别名:

更新(属性)
从传入的散列更新模型的属性并保存记录,所有这些都包装在事务中。如果对象无效,保存将失败,并返回
false

update
返回的是
true
false
(文档对此可能要明确得多),而不是更新后的模型实例。因此:

@proposal = @proposal.update_attributes(status: "Sent to Client")
@提案
保留为
,且两者都没有
更新属性
方法

控制器方法应该更像这样:

def send_proposal
  #...
  @proposal.update(status: "Sent to Client"))
  @proposal.request.update(archived: "Proposal Sent to Client")
  #...
end
您可能还想对这两个
update
调用执行一些错误检查。

是以下调用的别名:

更新(属性)
从传入的散列更新模型的属性并保存记录,所有这些都包装在事务中。如果对象无效,保存将失败,并返回
false

update
返回的是
true
false
(文档对此可能要明确得多),而不是更新后的模型实例。因此:

@proposal = @proposal.update_attributes(status: "Sent to Client")
@提案
保留为
,且两者都没有
更新属性
方法

控制器方法应该更像这样:

def send_proposal
  #...
  @proposal.update(status: "Sent to Client"))
  @proposal.request.update(archived: "Proposal Sent to Client")
  #...
end

您可能也想对这两个
update
调用执行一些错误检查。

beauty!完美的工作和伟大的背景信息。谢谢美丽的!完美的工作和伟大的背景信息。谢谢