3

Devise gemを使用しているRailsアプリケーションがあり、このアプリにマウントするRailsエンジンを作成しています。

mount Comments::Engine => '/talk', :as => 'comments'

エンジン内で、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」というエラーが表示されます。

私は何が間違っているのですか?

4

1 に答える 1

-1

縫い目問題は解決しました。コメントモデル内でcurrent_userを呼び出しましたが、機能しませんでした。ただしcurrent_user、コントローラーから取得しても問題なく動作します。しかし、これはエレガントな方法ではありません(。

于 2012-05-20T10:05:15.440 に答える