Ruby on rails Rails中的ASP.NET MVC视图模型和绑定模拟

Ruby on rails Rails中的ASP.NET MVC视图模型和绑定模拟,ruby-on-rails,asp.net-mvc,Ruby On Rails,Asp.net Mvc,我有很好的asp.NETMVC背景,最近开始学习Rails平台。 我正在尝试将我的asp.net mvc体验映射到Rails概念,并想问您一个问题: Rails是否具有相同的酷炫绑定功能,允许我使用视图模型显示表单,并在提交到视图模型后绑定表单数据?我有点困惑,因为我知道所有Rails模型实际上都是ActiveRecord的模型,而不是POCO对象,但我能在Rails中做到这一点吗?我可以拥有我的自定义模型(非ActiveRecord)并在表单提交后将表单的数据绑定到此模型 谢谢如果您的自定义模

我有很好的asp.NETMVC背景,最近开始学习Rails平台。 我正在尝试将我的asp.net mvc体验映射到Rails概念,并想问您一个问题:

Rails是否具有相同的酷炫绑定功能,允许我使用视图模型显示表单,并在提交到视图模型后绑定表单数据?我有点困惑,因为我知道所有Rails模型实际上都是ActiveRecord的模型,而不是POCO对象,但我能在Rails中做到这一点吗?我可以拥有我的自定义模型(非ActiveRecord)并在表单提交后将表单的数据绑定到此模型


谢谢

如果您的自定义模型具有接受散列作为参数的初始值设定项函数,则可以。这样,您可以使用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
上面是ruby中的一段伪代码,但您应该明白这一点