如何在application_controller.rb中调用操作,而不需要相应的视图文件?

时间:2012-09-01 02:49:58

标签: ruby-on-rails ruby-on-rails-3 model-view-controller

我正在尝试点击链接来调用此操作。

<% link_to "popup", :action => 'user_logs_out', :controller => 'application'%>

在我的应用程序控制器中,我有这个动作:

def user_logs_out
    gon.display_sign_out_popup = true
end

如何调用此操作?它始终显示模板错误。由于动作只需要设置一个布尔值,我觉得不需要为它提供视图文件。

2 个答案:

答案 0 :(得分:0)

如果你真的想要一个动作来渲染任何东西,你可以使用render :nothing => true

def user_logs_out
  display_sign_out_popup = true
  render :nothing => true
end

然而,几乎可以肯定你没有理由这样做。

答案 1 :(得分:0)

你必须把

def user_logs_out
    display_sign_out_popup = true
    respond_to do |format|
      format.js
    end
end

您还必须将:remote => true放入link_to

...如果你想从头学习认证,我会推荐Hartl的免费教程:http://ruby.railstutorial.org/book/ruby-on-rails-tutorial?version=3.2#cha-modeling_users