8/26/2006

Rails 取名的一些禁忌

今天寫 Rails 寫到一半,突然發現出現
wrong number of arguments (0 for 1)
然後整個 controller 裡面的頁面都出現同一個 Error。之前寫的同一個controller, 裡面正常的頁面全部都不能 work,全部都覆蓋在這個Error之下。

經過這一個文章的講法 ,我發現到我的 controller 裡面有個 action 叫做 send,這是 ActionController 裡面的 function,Ruby 以為我要 Overridden 這個 function,所以才有這種情況。

有些錯誤不實際去做還真的不知道,Rails 有一些取名的禁忌,都記載在這頁,這裡列出一些常犯的method name , 這些是絕對不能取的
  • display
  • format
  • load
  • send
  • system
  • process
  • timeout
有些名字是 DB 裡面的column不能取的
  • notify
  • open
  • quote
  • type

5 則留言:

darren 提到...

Thank you for sharing.

ps: type is also not allowed in the db schema

thegiive 提到...

謝謝,已經加入

匿名 提到...

wrong number of arguments (0 for 1) 除了命名禁忌之外 還有什麼可能的狀況嗎

並沒有多新的method 或是變數

可能是一些更trivial的錯誤嗎

thegiive 提到...

你可以寄信給我,把詳細的情況跟我講:)

Plumm 提到...

send 我印象中是對 Object 進行的 send...:QQ

這名字特別有印象是因為 Common Lisp 也是叫 send...

剛開始會以為是網路傳送什麼的, 其實不是 :QQ