2012-08-05 73 views
9

我想創建一個名爲'File'的模型,但它是一個保留模型名稱是rails。我想不出有什麼其他的方法可以調用模型,所以我想知道是否有標準的方法來處理這個問題,例如添加一個前綴或後綴(_File,FileItem等)?帶保留關鍵字的模型

回答

8

這個問題與modules解決:

模塊是方法,類和常量 組合在一起的一種方式。模塊給你兩個主要好處:

  1. 模塊提供了一個名稱空間並防止名稱衝突。
  2. 模塊實現混合設施。

[...]

模塊定義命名空間,一個沙箱中,你的方法和 常量,而不必擔心被其他 方法和常量被踩玩。

你的情況:

module MyRailsApp 
    class File 
    ... 
    end 
end 

因此您File類作爲MyRailsApp::File。這是Ruby on Rails的典型解決方案,在Ruby中這可能是不同的處理方式,請參閱了以下參考進行深入探討:

+0

如何在模型中放置一個模型模塊在軌道中? – 2012-08-06 00:18:23

+0

@CameronMartin與你在模塊中放置一個類沒有什麼不同。 – 2012-08-06 00:34:09

+0

你可以通過執行'rails generate model modulename/modelname'來創建模型嗎?將所有模型放在模塊中,還是選擇一個不衝突的名稱更好? – 2012-08-06 01:32:28