Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
只带*运算符的Ruby方法参数:def save(*)。。结束_Ruby_Ruby On Rails 3 - Fatal编程技术网

只带*运算符的Ruby方法参数:def save(*)。。结束

只带*运算符的Ruby方法参数:def save(*)。。结束,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,可能重复: Rails中的方法只使用一个星号作为参数 我知道*可以用于变量长度参数,如*args中所述,但是*在本文中是什么意思?如何访问此处的参数 更具体地说,如何将所有参数传递给super调用?在这种特定情况下,save不接受任何参数。这就是裸体splat的结果。但是,如您所知,在ActiveRecord模型上调用save会接受选项,因为此方法会被ActiveRecord::Validations覆盖: #可以通过传递:validate=>false跳过保存时的验证过程。常规的基本保存

可能重复:

Rails中的方法只使用一个星号作为参数

我知道
*
可以用于变量长度参数,如
*args
中所述,但是
*
在本文中是什么意思?如何访问此处的参数


更具体地说,如何将所有参数传递给
super
调用?

在这种特定情况下,
save
不接受任何参数。这就是裸体splat的结果。但是,如您所知,在ActiveRecord模型上调用
save
会接受选项,因为此方法会被
ActiveRecord::Validations
覆盖:

#可以通过传递:validate=>false跳过保存时的验证过程。常规的基本保存方法是
#在混合使用validations模块时(默认情况下)替换为该模块。
def保存(选项={})
执行_验证(选项)?超级:错
结束

在这种特定情况下,
save
不接受任何参数。这就是裸体splat的结果。但是,如您所知,在ActiveRecord模型上调用
save
会接受选项,因为此方法会被
ActiveRecord::Validations
覆盖:

#可以通过传递:validate=>false跳过保存时的验证过程。常规的基本保存方法是
#在混合使用validations模块时(默认情况下)替换为该模块。
def保存(选项={})
执行_验证(选项)?超级:错
结束

所以它被称为a。有趣。@ZahanM嗯,星号在Ruby中被认为是“splat运算符”。“裸”部分我只是编造的,所以我会犹豫,认为它无处不在的名称。这就是说,它不太可能被误认为是与Ruby相关的任何东西,因此我认为使用它是安全的所以它叫a。有趣。@ZahanM嗯,星号在Ruby中被认为是“splat运算符”。“裸”部分我只是编造的,所以我会犹豫,认为它无处不在的名称。这就是说,它不太可能被误认为是与Ruby相关的任何东西,因此我认为使用它是安全的
# The validation process on save can be skipped by passing <tt>:validate => false</tt>. The regular Base#save method is
# replaced with this when the validations module is mixed in, which it is by default.
def save(options={})
  perform_validations(options) ? super : false
end