2009-06-08 10 views
1

私は2つのモデルContentとContentTypeを持っています。各コンテンツ(オブジェクトではないクラス)には関連するContentTypeがあり、ContentTypeには基本的にいくつかの属性が保持されています。これらの属性は、オンラインフォームを使用して設定できます。あるオブジェクトの属性をもう一方のオブジェクトに複製する

は、新しいコンテンツオブジェクトを作成した後(例:@c = Content.new)私が使用して、関連付けられたContentTypeを取得することができます:

クラスコンテンツ をDEF @content_typeをCONTENT_TYPE || = ContentType.find_by_name(self.class .to_s) 終了 エンド

私は、ContentTypeをに@ c.content_type.xxxを使用して属性が、直接、彼らはmethod_missingオプションを使用せずに@c属性であるかのようにContentTypeを属性にアクセスするにはどのような方法がある問い合わせることができます。基本的に@ c.content_type.has_titleの代わりに? @ c.has_title?にお問い合わせしたいと思います。 ContentType属性を@cに複製する方法はありますか?

ありがとうございます。

答えて

1

あなたはContentTypeをを非表示にすることができるように、これは、幾分良好少なくともある

has_one :user 
delegate :name, :name=, :email, :email=, :to => :user 

デリゲートメソッドを使用することができます。

また、:allow_nil => trueオプションを渡すと、ContentTypeにnilも指定できれば厄介な "Cant call nil.xxx"エラーを避けることができます。

+0

優れています。フィードバックをお寄せいただきありがとうございます。 –

関連する問題