我有一个使用Devise gem的Rails应用程序,我正在创建一个Rails引擎来安装在这个应用程序中。
mount Comments::Engine => '/talk', :as => 'comments'
在Engine中,我想从主应用程序中获取current_user
实例。
在 {main_app} /initializers/comments.rb
Comments.user_class = "User"
Comments.current_user = "current_user" #current_user is Devise method(works fine in app)
在 {engine} /lib/comments.rb
中require "comments/engine"
module Comments
mattr_accessor :user_class, :current_user
def self.user_class
@@user_class.constantize
end
def self.current_user
send(@@current_user)
end
end
当我调用Comments.current_user
时,我收到错误“错误的常量名称current_user”。
我做错了什么?
答案 0 :(得分:-1)
接缝我解决了问题。
我会在Comments模型中调用current_user,但它不起作用。
但是从控制器获取current_user
,工作正常。
但这不是优雅的方式(。