1

リファイナリを既存の Rails アプリに統合することはできましたが、アセットのプリコンパイルは次のエラーで失敗します。

cannot load such file -- refinery_patch

application.rb には次のコードが含まれています。

config.autoload_paths += Dir["#{config.root}/lib/**/"] # to load files from lib directory, including subfolders

    config.before_initialize do
      require 'refinery_patch'
      require 'restrict_refinery_to_refinery_users'
    end

    include Refinery::Engine
    after_inclusion do
      [ApplicationController, ApplicationHelper].each do |c|
        c.send :include, ::RefineryPatch
      end

      ::Refinery::AdminController.send :include, ::RestrictRefineryToRefineryUsers
      ::Refinery::AdminController.send :before_filter, :restrict_refinery_to_refinery_users
    end

また、refinery_patch ファイルは lib/refinery 内に保持されます

module RefineryPatch

  def self.included(base)
    base.send :helper_method, 
              :current_refinery_user, 
              :refinery_user_signed_in?, 
              :refinery_user? if base.respond_to? :helper_method
  end

  def current_refinery_user
    current_user
  end

  def refinery_user_signed_in?
    user_signed_in?
  end

  def refinery_user?
    refinery_user_signed_in? && current_refinery_user.has_role?(:refinery)
  end

  def authenticate_refinery_user!
    authenticate_user!
  end

  def store_location
    session[:return_to] = request.fullpath
  end

  def redirect_back_or_default(default)
    redirect_to(session[:return_to] || default)
    session[:return_to] = nil
  end
end

config.autoload_paths が lib フォルダー内のすべてのファイルをロードするように指示しているのに、ファイルをロードできない理由がわかりません

4

1 に答える 1

0

同じ問題に遭遇し、ここで解決策を見つけました。

http://refinerycms.com/guides/heroku

config/application.rb で以下を設定する必要があります

config.assets.initialize_on_precompile = true
于 2013-09-27T23:32:25.817 に答える