在laravel我习惯了
Auth::user()->id
我可以参考在视图中设置数据ID或其他内容。我正在使用rails应用程序中的ruby工作,并且不能在我的生活中找到如何在rails中实现此目的的答案。我找到了很多关于current_user的答案,但我无法在视图中获得任何数据。
要清楚我试图准确设置的是
<a href="/chapters/<%= chapter.id%>" data-user-id="<%= @current_user.id %>"> Enroll </a>
这里的“current_user.id”将是用户ID。使用上面的代码(以及我能想到的任何变体)我什么都没有,没有错误但没有数据。我是否真的必须在每个控制器方法中设置它以某种方式访问它?有没有人有这个解决方案,他们可以指向我?
非常感谢您的帮助。
答案 0 :(得分:0)
如果您要访问视图中的任何实例变量,则需要先定义它(在控制器或视图中)。
根据您设置身份验证的方式,您可能在某处使用current_user
方法。
可以在ApplicationController中定义(它具有所有控制器共享的功能);
class ApplicationController < ActionController::Base
def current_user
User.find_by id: session["current_user_id"]
# or whatever
end
helper_method :current_user
end
helper_method
行可以在您的观看中访问它,因此您可以撰写<%= current_user.id %>
。
您还可以编写一些代码,以便在所有视图中都可以使用@current_user
实例变量:
class ApplicationController < ActionController::Base
before_action :define_current_user
def define_current_user
@current_user = current_user # call the 'current_user' method defined elsewhere
end
end