【发布时间】:2020-06-15 08:44:26
【问题描述】:
实例变量在 Rails API 中扮演什么角色?我正在使用 Ruby on Rails 构建后端 API,并且正在关注 Michael Hartl 的 RoR 教程。他在 RoR 的模板引擎中使用了实例变量。但是,如果我只是简单地将 RoR 用作 API,我还需要实例变量吗?
下面是snippet from Michael Hartl's tutorial,介绍如何找到当前用户。
def current_user
if (user_id = session[:user_id])
@current_user ||= User.find_by(id: user_id)
elsif (user_id = cookies.signed[:user_id]) # User has closed the browser before and persistent session exists
user = User.find_by(id: user_id)
if user&.authenticated?(cookies[:remember_token])
log_in user
@current_user = user
end
end
end
我正在从一个分离的前端发出 Web 请求,@current_user 是否总是以 nil 开头?我可以简单地使用常规变量吗?
【问题讨论】:
-
如果您没有任何视图并且实例变量未在类中的任何其他位置(或从此类继承的任何类)中使用,那么您可以将它们替换为局部变量。实例变量用于从类中的任何实例方法访问该变量,或将变量公开给视图文件。
-
@Mark 谢谢马克!如果您将其写为答案,我将很乐意接受!
标签: ruby-on-rails ruby