1

我知道在Rails中我們遵循約定。我們應該以複數形式命名控制器。 最近我聘請了一位自由職業者來幫助我在Rails中的一部分應用程序,因爲我對這個框架和ruby非常陌生。 我有一個PortfolioController - 這只是覺得正確,因爲投資組合是一個條目容器(誰說「我有投資組合」?)。 這位自由職業者說這是不正確的,我會遇到麻煩,不遵循約定,並將其更名爲PortfoliosController。我問了幾次,如果我將控制器的名稱命名爲PortfolioController而不是PortfoliosController,我會得到什麼確切的問題,除了「您將遇到問題」之外,我沒有得到任何解釋。以單數形式命名控制器的缺點是Rails?

那麼,有誰可以告訴我這些問題是什麼?

回答

1

那麼,最簡​​單的原因是任何在這個項目上工作的人都可能會在編寫代碼時使用複數來引用它,然後必須意識到「哦,他們決定不遵循這個控制器中的約定「在未指定的」WTF?「時間過後?而他們試圖弄清楚他們做錯了什麼。同樣在語義上,您的控制器是投資組合表中所有投資組合的控制者。

代碼方面你會遇到路線問題。您將不得不製作一堆非標準路線,因爲默認情況下,http://my_app/portfolios轉到控制器的index操作。然後您將展示一個http://my_app/portfolios/1的特定投資組合,它將向您顯示id1的投資組合。因此,準備在您的config/routes.rb文件中創建和維護一系列自定義路線。你看到類似的問題,無論是複數還是單數,如equipment,你可以擁有一臺設備或許多設備。看到這個:rails link path and routing error when model singular and plural name are the same (e.g. equipment, species)。這不僅會讓你的路線不穩定,而且會導致衝突,如portfolio_pathportfolio_url

+0

謝謝。奇怪我爲什麼沒有從7年的專業背景中獲得類似的答案? (修辭問題) – Nemoden

+0

哈哈!你有沒有得到「只是不這樣做」的答案? – Beartech

+0

是的。 「這很糟糕,因爲這很糟糕。」 – Nemoden

相關問題