簡體   English   中英

將對象從application_rake發送到模型

[英]send object from application_rake to a model

我在application_rake中有一項任務。 重要的行是:

family = Family.find(114)
SysMailer.deliver_feedback_memo(emails_str,"escorter", family)

在SysMailer模型中,我嘗試這樣寫家庭名稱:

puts family.name

名字是家庭的屬性(當然!!!)

但是當我跑步時:

rake the_task

我收到一個錯誤:

rake aborted!
missing attribute: name

為什么? 將對象從rake發送到模型有問題嗎?

更新:

在解決問題之后,我嘗試不傳遞對象,而是僅將family.id傳遞給模型,如下所示:

SysMailer.deliver_feedback_memo(emails_str,"escorter", **family.id**)

(星號僅表示更改)。

然后在模型中,我創建了一個使用此參數的方法:

def some_method(emails, type, **family_id**)
  family = Family.find(family_id)
  puts family.name

而且有效。

所以我的問題仍然存在。 用耙子傳遞物體有問題嗎?

通過方法調用傳遞對象絕對沒有問題-即使是從rake任務中傳遞。

如果family.name語句實際上是失敗的,我希望您會看到類似以下的消息:

undefined method :name for #<Family> 

因此,聽起來您可能看錯了代碼行(即,可能是代碼中其他內容的錯誤)。 缺少屬性錯誤聽起來更像是質量分配問題。

您是否嘗試過使用--trace選項運行rake任務?

rake the_task --trace

無論哪種方式,這都有助於發現問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM