• 关于 Rails 的冒号 at 2021年07月25日

    刚上手 rails 的小白,碰到两种冒号用法:

    1. 前置冒号 :xxxx
    2. 后置冒号 xxxx:

    我的理解第一种相当于普通字符串的简单定义,:xxxx 可以看作其它语言里的 "xxxx"
    第二种 xxxx:,是 ruby 为了方便定义 map (ruby 称为 hash ) 中 key 的写法。

    以 rails 的 before_action 函数为例:

    # before_action 的完整调用
    before_action("authenticate_user_token", {"only" => "logout"})
    
    # 简化字符串
    before_action(:authenticate_user_token, {:only => :logout})
    
    # 简化 key
    before_action(:authenticate_user_token, {only: :logout})
    
    # 省略括号
    before_action :authenticate_user_token, {only: :logout}
    
    # 当散列是方法调用的最后一个参数时,可以省略花括号
    before_action :authenticate_user_token, only: :logout