新手问题 attributes 与 update_attributes 的区别

xautjzd · 2013年08月14日 · 最后由 xautjzd 回复于 2013年08月15日 · 2753 次阅读

看到某个视频里讲的 Update 方法有两种:

  1. attributes=
  2. update_attributes

请问这两种方法有何差别呢???然后碰到下面问题: eg:

$rails generate model Post name:string, email:string
表里有数据,然后执行更新时:
>p=Post.find(1)
>p.attributes= {
      :name => "xautjzd",
      :email => "[email protected]"
}
>p.save

或者:
p.update_attributes(
      :name => "xautjzd",
      :email => "[email protected]"
)
>

为何 attributes=的方法是"{",而 update_attributes 方法是“(”呢

#1 楼 @fresh_fish 都是 hash,但是前面的那个可以省略(,后面那个不能省略"(",只能省略{。这点不解

#2 楼 @xautjzd 这个问题估计问倒了一大票人!

一个是赋值,一个是方法调用。 方法调用,如果最后一个参数是 hash,可以省略{}的。

#4 楼 @heliang7 赋值也是方法调用

需要 登录 后方可回复, 如果你还没有账号请 注册新账号