Ruby on rails 在rails中的应用程序控制器中调用当前用户

Ruby on rails 在rails中的应用程序控制器中调用当前用户,ruby-on-rails,devise,Ruby On Rails,Devise,大家好,我是rails的新手,如果我的问题很简单或愚蠢,请理解我。我目前正在使用designegem,我试图在我的application.html.erb中放入modal,以便modal始终显示在顶部,但我收到的错误消息是 ApplicationController:类的未定义局部变量或方法“当前用户” 我应该在哪里从Application.html.erb中的Post.rb调用记录?谢谢你的帮助 Application.html.erb <ul class="nav navbar-nav

大家好,我是rails的新手,如果我的问题很简单或愚蠢,请理解我。我目前正在使用
designe
gem,我试图在我的
application.html.erb
中放入modal,以便modal始终显示在顶部,但我收到的错误消息是

ApplicationController:类的未定义局部变量或方法“当前用户”

我应该在哪里从
Application.html.erb
中的
Post.rb
调用记录?谢谢你的帮助

Application.html.erb

<ul class="nav navbar-nav navbar-right">
   <% if user_signed_in? %> 
     <li><%=link_to 'Sign out', destroy_user_session_path, method: 'delete' %></li>
     <%=render "post_list", post_list: @post_list%> //I tried to call this
<% else %> 
   <li><%=link_to 'Sign in',  new_user_session_path %></li>
   <li><%=link_to 'Sign up',  new_user_registration_path %></li>
<% end %>
</ul>
  • //我试着把这个叫做
应用程序控制器

class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  @post_list = Post.where(user_id: current_user).list?

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
    devise_parameter_sanitizer.permit(:account_update, keys: [:name])
  end
end
class ApplicationController
这是您可以在
ApplicationController

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception

  def current_user_posts?
    @post_list = Post.where(user_id: current_user).list? // current_user should work here.
  end

end
class ApplicationController
您真的在实例方法之外调用
@post\u list=post.where(用户id:current\u user).list?
?另外,您是否遵循了Desive的说明?我认为在实际执行用户登录操作之前,您至少缺少一个
<代码>在\u操作之前:验证\u用户你的意思是如果我在视图中调用它?在控制器中。您在其中设置
@post_list
的语句我怀疑您应该在实例方法中调用它。你能用你控制器中的所有代码更新你的问题吗?啊,这都在“应用程序控制器”中…好的,那么你缺少一些方法。。。阅读中的零件控制器过滤器和辅助工具。同样奇怪的是,您的
应用程序控制器中没有在“操作:防止伪造”之前的声明