2014-05-01 23 views
1

如何將Rails模型類名轉換爲符號:model_id?例如,我試圖將Book類轉換爲book_id。現在我能夠做到這一點如何從Model中獲取model_id?

"#{Book.to_s.parameterize}_id".to_sym 

有沒有更好的方法來做到這一點?

回答

2

當然還有其他方法可以做到這一點。他們不一定更好:

Book.name.foreign_key.to_sym 

你還需要考慮你想要發生什麼,如果類是在一個模塊,例如, Library::Book

Library::Book.name.parameterize.foreign_key.to_sym 
=> library_book_id 
+0

'Book.name'與'Book.model_name'是一樣的嗎?或者你的意思是模型的某些屬性? – zishe

+1

'name'是'Module'(因此'Class')的一個方法,它返回模塊的名字。 http://www.ruby-doc.org/core-2.1.1/Module.html#method-i-name – Shadwell

+0

謝謝。我只是試圖警告,如果有Rails模型'Book'的'name'屬性,它主要會被調用。所以,我寧願使用'model_name'屬性來代替。 – zishe

0

我更喜歡這樣的:

Book.model_name.parameterize('_').foreign_key.to_sym 

作爲默認參數多是分離-。鏈接parameterizeforeign_key

相關問題