2011-06-09 50 views
1

我在我的Rails應用程序System中無意地命名了一個模型,這也是一個ruby核心方法。此模型與另一個模型Project有關係,我試圖對其進行索引。思維與紅寶石方法名稱衝突的獅身人面像索引

理想情況下,我期待我的設置指標是這樣的:

define_index do 
    indexes :name, :sortable => true 
    indexes system(:name), :sortable => true, :as => :system_name 
end 

我可以改變模型的名字,但我把那個叫妥協,我不相信我需要。對此有沒有很好的解決方法?

紅寶石1.8.7,軌3.0.7,2.0.3 thinking_sphinx

回答

1

良好的工作圍繞命名變量或用戶級別中的類保留字(語言關鍵字和平臺級的方法/班)是首先不是這樣做的。

第二個最好的解決方法是使用範圍界定::,以確保您呼叫的名字是你想

::system() # calls the actual system method as defined by Ruby 
APPNAME::MODEL_NAME # would call the model defined as `APPNAME::MODEL_NAME` 

我真的不能想到一個解決辦法的一個沒有命名空間的模型(雖然知道Ruby,它可能存在一些功能 - 只是我自己從來不需要它)。如果只有一半的模型是命名空間的話,它會變得更加混亂。從長遠來看,它只是更多的鍵入記住命名空間一切

+0

你是對的,周圍的好工作是永遠不會解決它!我剛剛結束了改變模型名稱,並不難,但它並不好玩。 – noazark 2011-06-10 01:27:39

相關問題