0
这是一个非常简单的问题,但我很困惑,我应该在控制器中使用.new和.create。我想我真正要问的是.new的用途是什么,.create的用途是什么?谢谢。何时使用新的和创建轨道控制器
这是一个非常简单的问题,但我很困惑,我应该在控制器中使用.new和.create。我想我真正要问的是.new的用途是什么,.create的用途是什么?谢谢。何时使用新的和创建轨道控制器
创建(属性=无){|对象| ...}
如果验证通过,则创建一个对象(或多个对象)并将其保存到数据库中。无论对象是否成功保存到数据库,都会返回结果对象。
new(attributes = nil){| self if block_given?| ...}
新对象可以被实例化或者为空(没有传递施工参数)或预先设定属性,但还没有被保存(通过匹配相关的表的列名的键名的哈希)。在这两种情况下,有效的属性键都由关联表的列名确定 - 因此,您不能拥有不属于表列的属性。
因此create
实例化新对象,验证它,然后将其保存到数据库。而new
只创建本地对象,但不会尝试验证或将其保存到数据库。
谢谢你,但我很困惑,我愿做只使用新的?你能提供一个例子吗? – 2014-12-02 16:40:10
如果你不想立即保存,你可以做'something = Something.new',然后'如果something.save ...'或者如果你以后不能拥有一些属性,那么你可以创建它,然后设置更多属性,例如'something.property = variable'然后'save'。只取决于你在做什么。 'new'可以派上用场,但'create'可能更常用。 – martincarlin87 2014-12-02 16:44:59
完美的解释。谢谢! – 2014-12-02 16:47:09