为什么我得到“未初始化的常量ApplicationController :: SessionHelper”错误?

时间:2015-07-17 13:35:49

标签: ruby-on-rails ruby

我没有会话模型,只有用户和任务模型。

应用/助手/ sessions_helper.rb

:provided

我在应用程序控制器中包含了SessionHelper。

应用/控制器/ application_controller.rb

import org.rosuda.JRI.Rengine;
import org.rosuda.javaGD.GDCanvas;

public class RjavaGD extends JFrame implements ActionListener {

    private Rengine engine;
    private JButton btn;

    public RjavaGD() {
        super();
        super.setTitle("My R Plot");

        btn = new JButton("show plot");
        btn.addActionListener(this);
        this.getContentPane().setLayout(new BorderLayout());
        this.getContentPane().add(btn, BorderLayout.PAGE_START);

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.pack();
        this.setVisible(true);

     }

    @Override
    public void actionPerformed(ActionEvent e) {

        if (e.getSource() == btn) {
        // initialize R
            engine = new Rengine(new String[] { "--vanilla" }, false, null);
            engine.eval("Sys.setenv('JAVAGD_CLASS_NAME'='RjavaGDInterface')");
            engine.eval("library(JavaGD)");

            engine.eval("JavaGD()");
            engine.eval("a <- c(1,2,3,2,4)");
            engine.eval("plot(a,type=\"l\")");

            engine.end();
        }
    }

}


import org.rosuda.javaGD.GDInterface;

public class RjavaGDInterface extends GDInterface {

     JFrame f;

     @Override
     public void gdOpen(double w, double h) {
        super.gdOpen(w,h);
        f = new JFrame();
        f.setLayout(new BorderLayout());
        c = new GDCanvas(w, h);

        f.setTitle("New Plot");
        f.getContentPane().add((GDCanvas) c, BorderLayout.CENTER);
        f.getContentPane().add(buttonPanel(), BorderLayout.NORTH);

        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.pack();
        f.setVisible(true);

     }
    private JPanel buttonPanel(){
        JPanel p = new JPanel();
        p.setBackground(Color.pink);

        p.add(new JLabel("Options“));
        p.add(new JButton("option1“))

        return p;
    }

}

应用/模型/ user.rb

module SessionsHelper

  def sign_in(user)
    session[:user_id] = user.id
    self.current_user = user
  end

  def current_user=(user)
    @current_user = user
  end

  def current_user
    if session[:user_id]
    @current_user ||= User.find(session[:user_id])
    end
  end

  def signed_in?
    !current_user.nil?
  end

  def sign_out
    session[:user_id] = nil
    self.current_user = nil
  end

  def current_user?(user)
    user == current_user
  end

  def deny_access
    redirect_to signin_path, notice: "Please sign in to access this page."
  end

end

问题是什么?

1 个答案:

答案 0 :(得分:0)

有一个拼写错误,它应该是SessionsHelper而不是SessionHelper

 include SessionsHelper

希望这有帮助!