在我的一個郵件程序方法中,我使用了一個變量標題'@subject'。默認情況下,我期待這會出現在相應的視圖中。但是,在浪費了相當一段時間後,我發現問題出在變量名上。將它改爲任何東西,但@subject工作。有沒有這些關鍵字定義的地方,我谷歌周圍,但沒有找到任何這樣的上市?在Action Mailer中使用名爲'@subject'的變量
3
A
回答
0
嗨@Wahaj首先@subject不是關鍵字!,您可以在使用它之前使用反射來獲取有關類的信息。 http://en.wikipedia.org/wiki/Reflection_(computer_programming)#Ruby
您可以通過object_or_class.instance_methods
消息讓所有實例方法或只是調用object.methods
將返回可用的方法,還有其它更多的谷歌,
現在當你調用像
UserMailer.welcome(params)
行動郵件的方法是返回Mail::Message
對象https://github.com/rails/rails/blob/master/actionmailer/lib/action_mailer/base.rb#L143
這裏是Mail :: Message反映的結果
m=Mail::Message.new => #<Mail::Message:-634435678, Multipart: false, Headers: >
m.methods => [....,"subject", "subject=",...]
似乎subject
是Mail::Message
類attr_accessor
但它不是,受到getter和setter在頭湊設定主題值..
#a part from Mail:Message class
# mail.subject "G'Day mate"
# mail.subject #=> "G'Day mate"
def subject(val = nil)
default :subject, val
end
# Sets the Subject value of the mail object, pass in a string of the field
#
# Example:
#
# mail.subject = '=?UTF-8?Q?This_is_=E3=81=82_string?='
# mail.subject #=> "This is あ string"
def subject=(val)
header[:subject] = val
end
0
相關問題
- 1. 在Action Mailer中設置實例變量?
- 2. 在視圖中顯示Action Mailer變量會返回「nil」
- 3. Rails SMTPAuthenticationError Action Mailer
- 4. Action Mailer Returning SMTPAuthentcationError
- 5. Action Mailer Invites Rails 3.1
- 6. 如何在Rails中顯示買家名稱4-Action Mailer Views
- 7. Rails 2.3 action mailer Net :: SMTPFatalError
- 8. 如何將Subject變量轉換爲Observable變量
- 9. 在$ mailer-> AddAddress(「[email protected]」)中使用數組變量; PHPMailer腳本
- 10. 在Java中使用變量作爲其他變量的名稱
- 11. 如何在Perl中使用變量的值作爲變量名?
- 12. 在Rails Mailer中使用`_path`
- 13. 如何在Ruby中使用變量作爲變量名?
- 14. Rails Action Mailer不發送郵件
- 15. Rails 3:嘗試使用模塊擴展Action Mailer
- 16. 無法引用Action變量listener(Jframe)中的非變量
- 17. 在action中傳遞變量值url
- 18. 如何在Action Mailer(Rails 4.0.1)中設置內容類型?
- 19. image_url在action mailer(Ruby on rails)中不工作
- 20. 使用Php Mailer?
- 21. Register-WmiEvent(Win32_ProcessStopTrace) - 如何在-Action開關中使用變量?
- 22. 在php中使用變量名稱中的變量內容?
- 23. 如何在LESS中的變量中使用變量名?
- 24. 如何在RxJava2中使用void Subject?
- 25. 在Jinja2中使用變量名稱作爲塊名稱?
- 26. Ruby中沒有Rails的Action Mailer - 超時錯誤
- 27. 內新的變量名稱中使用外部變量名VB.Net
- 28. Action Script 3.0中的限制變量
- 29. 在Ruby中使用變量的值作爲另一個變量名
- 30. 在另一個變量的名稱中使用變量
有錯字在你的答案..這應該是UserMailer.welcome(params)而不是UserMailer.welocme(params) – 2012-02-02 10:58:55
此外,仍然不清楚爲什麼@subject不起作用,因爲它不是關鍵字 – 2012-02-02 10:59:44
@ShirjeelAlam所以你有投票答案,因爲它有錯字?而且還是題材不是關鍵字!!如果你有權訪問源代碼並且有反射的能力,那麼它就不可能擁有一個實例變量的列表和所有類的方法,使用它你希望你得到它! – Naveed 2012-02-02 11:06:13