2014-04-17 32 views
1

我一直在.net中開發一點,現在我正在發現rails。 我很熟悉代碼生成,並且在.net中看起來相當有用。這就是當我們執行自定義代碼時,就像模型中的新方法一樣,我們在自動生成的代碼中使用單獨的文件(使用public partial class)執行它。 所以,如果我們改變屬性的類型並重新生成代碼,我們創建的方法不會被擦除。如何從RoR中生成的自定義代碼中分離出來

我還沒有在互聯網上的RoR教程中找到類似的東西。它的工作原理是否相同,或者是否有另一種解決方案來輕鬆重新展開代碼而不擦除自定義方法?

感謝

+0

你在.NET中生成什麼類型​​的代碼? ORM部分? –

+0

yes =)with poco – Krowar

回答

0

在Ruby中,你可以做與mixin - 創建一個Module,然後將其包含在你的類。

有很多關於它的信息網上,看看這個帖子here

1

如果你只需要生成C#ORM相關的代碼,你不需要在Rails的擔心代碼生成問題。感謝Ruby的元編程能力以及Rails中的「Convention over Configuration」理念,您不需要根據工具生成ORM代碼。

class Product < ActiveRecord::Base 
end 

上述類將自動映射到數據庫中的products表。您可以像訪問p.name那樣訪問每列的值。您可以通過Product.findProduct.where

檢索產品,這些代碼是通過子類或混入注入(如阿米爾指出的),或者更一般地,在上的BasicObject#method_missing幫助需求運行時生成。

你可以看看Active Record Basics,這可能會有助於通讀整本指南來體驗Rails敏捷開發。

+0

所以,想象一下,如果我創建一個具有Gender類型的人:boolean Name:String,那麼在People模型中,我創建了幾個方法,例如,在人員模型文件中的'insertPersonInCourse'。啓動命令來更新我的模型是完全可以的,因爲我認爲Gender是一個字符串,我的自定義方法不會被刪除? – Krowar

+0

@Krowar方法生成發生在運行時。它不會保存到源代碼中。對於'insertPersonInCource',你會發現['belongs_to'和'has_many'有幫助](http://guides.rubyonrails.org/association_basics.html)。你可以寫'some_course.people << person'。看看[Active Record Associations](http://guides.rubyonrails.org/association_basics.html) –

相關問題