如何在控制器中使用视图助手?

时间:2015-10-08 07:00:44

标签: ruby ruby-on-rails-4

关于视图助手控制器的使用,我遇到了一些困惑。我的场景是:

session_helper.rb

module SessionsHelper

  # logs in the given user.

  def log_in(user)
    session[:user_id]=user.id
  end

sessions_controller.rb:

class SessionsController < ApplicationController

  def create
    user = User.find_by(email: params[:session][:email].downcase)

    if user && user.authenticate(params[:session][:password])
      log_in user
      redirect_to user
    end
  end

  def destroy
    log_out
    redirect_to root_url()
  end

现在,根据我阅读的文档,它提到在视图中使用帮助程序,以减少在那里完成的编码量。

我的问题是:我如何能够使用我的控制器中log_in中定义的log_outsession_helper方法?

如果有人能清楚我这个概念会非常有用。

1 个答案:

答案 0 :(得分:1)

回答你的问题:

ActionController::Base.helpers.log_in(user)

但是,最好将这些方法放在控制器中。