使用:在名称前面调用Rails方法

时间:2012-09-21 14:57:32

标签: ruby-on-rails methods

我正在通过Michael Hartl的Ruby on Rails教程。在清单9.19 中,他定义了一个名为signed_in_user的私有方法,但当他在代码顶部调用它时,他使用以下行:

before_filter :signed_in_user, only: [:edit, :update]

为什么他在调用signed_in_user时添加冒号?

2 个答案:

答案 0 :(得分:1)

signed_in_user实际上并未在该行上被调用。被调用的方法是before_filter,这是一个Rails方法。 :signed_in_user是该方法的一个参数,这是方法所采用的一种参数 - 一个符号,它指定在另一个参数中指定的控制器操作之前在运行时调用的方法(或者所有操作中的所有操作)这个控制器,默认情况下。)

答案 1 :(得分:0)

因为Object.send将符号作为第一个参数。

因此,如果您想使用Object.send来调用方法,则需要符号。