传递数据以我应用,我有一个Widget
模型,Feature
模型与由WidgetFeature
表通过相关联的的has_many。当使用虚拟属性或在散列中的Rails 3
按要求,当我发送WidgetFeature对象,我应该FEATURE_NAME追加到它为好,对于相关的给定功能。
有在它去两种方式:
- 虽然发送的对象,这样做:
widget_feature_object[:feature_name] = feature_name_value
,然后我可以在我的控制器或视图访问它,通过widget_feature_object[:feature_name]
,因为一个对象有(键,值)对,所以我可以添加另一个。
2。制造feature_name
a 虚拟属性在WidgetFeature
模型,然后创建获取和设置方法它。
据我所知,当您要创建从实际出现在模型的字段(如姓名=名+姓)不同有不同的看法,你应该使用虚拟属性。
同样的东西也适合在这里吗?
还有,Rails是否对对象做了一些缓存,在使用虚拟属性时可能会有用,而不是在我使用第一种方法时会变得有用?
每种方法的优缺点是什么?哪种方法最适合我的要求? 非常感谢。
@Martjin:我明白你在说什么。但是问题是关于选择虚拟属性还是仅仅在散列中传递必要的数据。这只是关于数据发送,这是主要关心的问题,如果缓存做了额外的虚拟属性。 您能否现在以更好的方式回答问题 –