当我使用
acts_as_ferret :fields =>[:competitor], :remote => trueNameError in PartController#index
未初始化常量PartController::竞争者
我的模型
class Competitor < ActiveRecord::Base
validates_presence_of :fee_earner_id, :notes
belongs_to :fee_earner
belongs_to :country
belongs_to :state
belongs_to :user
acts_as_ferret :fields =>[:competitor], :remote => true
end 我的控制器
class PartController < ApplicationController
def index
@proscribeds = Competitor.paginate(:all,
:order => sort ,
:page => params[:page],
:per_page => 70 )
end
end它在本地主机中运行良好,但是当我将它部署到服务器中时,我会得到这个错误。
act_as_ferret与其他型号的产品合作得很好。我不知道为什么这不适用于Competitor模型。
发布于 2010-05-15 23:12:46
这些似乎是简单的建议,但我想到的是:
我知道这些建议并不是真正针对Rail/Ruby的,但我发现,与实际的代码错误相比,小的配置问题更让我头疼。
祝好运!
发布于 2015-05-15 15:50:43
这可能是您正在运行的远程drb服务器上的bin/ferret_server文件的问题。它抱怨的是,它对PartController::Competitor模型一无所知。这是因为雪貂服务器不会像Rails一样,在默认情况下加载所有Rails类。
我也遇到了类似的问题,解决方案是还需要Rails config/environment文件和Rails config/application文件。
就像这样:
begin
ENV['FERRET_USE_LOCAL_INDEX'] = 'true'
if env = $ferret_server_options['environment']
ENV['RAILS_ENV'] = env
end
# determine RAILS_ROOT unless already set
root = File.expand_path(determine_rails_root)
begin
require File.join(root, 'config', 'application')
# Also require environment to eager load Rails classes
require File.join(root, 'config', 'environment')
rescue
puts "Error booting your rails app at #{root}: #{$!}\n#{$!.backtrace.join("\n")}"
raise $!
end
puts "Rails.root: #{Rails.root}"
puts "Rails.env: #{Rails.env}"
require 'acts_as_ferret/server/server'
ActsAsFerret::Server::Server.new.send($ferret_server_action)
rescue Exception => e
$stderr.puts(e.message)
$stderr.puts(e.backtrace.join("\n")) if $ferret_server_options['debug']
exit(1)
endhttps://stackoverflow.com/questions/2840350
复制相似问题