2011-09-14 9 views
0

私は良いasp.net mvcの背景があり、私は最近、Railsのプラットフォームを学び始めました。 私のasp.net mvcの経験をRailsの概念にマッピングしようとしていて、質問をしたいと思っています。ASP.NET MVCビューモデルとRailsのバインディングのアナログ

Railsには、ビューモデルを使ってフォームとバインドフォームを表示できるクールバインディング機能がありますかビューモデルに提出した後のデータすべてのRailsモデルがPOCOオブジェクトのようなものではなく、実際にActiveRecordのモデルであると理解しているので、ちょっと混乱しますが、これをRailsで行うことはできますか?カスタムモデル(非ActiveRecord)を使用し、フォームの送信後にフォームのデータをこのモデルにバインドできますか?

はありがとう

答えて

0

カスタムモデルは引数としてハッシュを受け入れる初期化機能を持っている場合あなたができます。そうすれば、あなたはのform_forタグとし、そのような新しいオブジェクトを作成したコントローラでフォームを作成することができます。

myObject = myObject.new(params[:myObject]) 

これは、フォームから提出されたハッシュからのデータを使用して新しいオブジェクトを作成します。 もちろん、あなたのオブジェクトの初期化子は、ハッシュで潜在的に利用可能な値を知り、それを抽出する必要があります。

あなたのオブジェクトは、次のようになりますことができます:

class MyObject 

attr_accessor :prop1, :prop2, :prop3 

def initialize(args = {}) 
self.prop1 = args[:prop1] if args.keys.contains(:prop1) 
self.prop2 = args[:prop2] if args.keys.contains(:prop2) 
self.prop3 = args[:prop3] if args.keys.contains(:prop3) 
end 

end 

上記はルビーからの擬似コードのビットですが、あなたのアイデアを取得する必要があります。

+0

コードビットをもっと明確にするために更新されたコードビット –

関連する問題