这似乎应该很容易,但我不知道该怎么做:
如果用户登录到我的应用程序,我总是希望在导航栏的右上角显示他们的名字。但是,如果它们在不同的视图中,例如来自 Posts 控制器的 Posts 视图,那么该视图只能访问 Post 类及其关联变量,对吗?那么我该如何插入这个是:
<%= user.name %>
当我没有通过用户控制器时?
这似乎应该很容易,但我不知道该怎么做:
如果用户登录到我的应用程序,我总是希望在导航栏的右上角显示他们的名字。但是,如果它们在不同的视图中,例如来自 Posts 控制器的 Posts 视图,那么该视图只能访问 Post 类及其关联变量,对吗?那么我该如何插入这个是:
<%= user.name %>
当我没有通过用户控制器时?
您会发现许多 Rails 应用程序定义了一个current_user
在基本控制器中调用的方法,例如ApplicationController
,然后将其用作视图助手:
class ApplicationController < ActionController::Base
def current_user
# Do whatever logic you need to return an instance of the logged in user
end
helper_method :current_user
end
然后,您可以在从该类继承的任何控制器或视图中引用该方法:
<%= current_user.name %>
您的控制器可以调用您想要的任何模型,因此您的问题中陈述的假设不正确。(例如,如果你真的想的话,你可以从你的控制器中调用User
模型。)Posts