[英]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.