2014-04-17 34 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) –

相关问题