Bri*_*ich 1 ruby ruby-on-rails
def current_user=(user)
@current_user = user
end
def user_from_remember_token
User.authenticate_with_salt(*remember_token)
end
def remember_token
cookies.signed[:remember_token] || [nil, nil]
end
Run Code Online (Sandbox Code Playgroud)
1)我大多与def current_user =(用户)混淆.什么是= for.我看到它将用户对象作为参数,但是=符号的重点是什么.
2)不确定为什么有一个* infront remember_token.有谁能解释一下?
谢谢
的=在方法名的末尾是用于该分配一个值的方法一个语法糖.因为括号在Ruby中是可选的,所以你可以写foo.current_user = (bar)或foo.current_user = bar.请注意,后者看起来更自然.另请注意,您可以使用attr_writer :current_user.
您还可以在Ruby中使用?和!in方法名称.按照惯例,前者表示要返回的布尔值,后者表示"危险"方法(例如,修改对象而不是返回副本).
将*传递给方法的内容包装到数组中.它在调用方法时也有效,然后它会打开一个数组.
这||简直是合乎逻辑的; 如果第一个操作数计算为nil或false,则返回另一个操作数.通常你会发现foo ||= "bar",这意味着foo它将得到"bar"的值,除非它有一个值(foo = foo || "bar").
Ruby是一种很好的语言,有很多这样的怪癖.Rubyist是值得一游的页面.
| 归档时间: |
|
| 查看次数: |
210 次 |
| 最近记录: |