NameError,uninitialized constant Vote - namespace

时间:2014-04-03 21:29:32

标签: ruby-on-rails ruby-on-rails-4

当我在路由中使用命名空间将东西放入文件夹时出现错误。当事物(控制器,视图文件等)不在特殊文件夹中时,它可以正常工作。 您基本上点击投票以获得晋升业务(还有'促销'和'投票'模型)。我只想测试Factual API。

执行搜索查询时发生错误。

  

商业:: Bar.promoted_factual

     

app / models / business / bar.rb,第111行

 def promoted_factual params_query, place, query  

  promoted_factual_ids = Vote.promoted_factual_ids params_query, place
  promoted_factual_ids.reject! { |id| !Vote.find_by_factual_id(id).live_vote? }
  

商业:: BarsController#promoted_factual

     

app / controllers / business / bars_controller.rb,第81行

def promoted_factual
  @promoted_factual = Bar.promoted_factual params[:query], params[:place], @query
  ...
end

路由

namespace :business do 

  match 'lsearch' => "bars#lsearch", via: [:get]
  post 'vote' => 'votes#create', as: :vote

  resources :bars

end

1 个答案:

答案 0 :(得分:1)

根据错误NameError, uninitialized constant Vote,您在Vote文件夹中没有名为app/models的模型。因此,你得到了错误。

同样,如果您有投票类但它位于app/models/business目录,那么您应该以{{1​​}}的形式访问它。例如:Business::Vote应如下所示:

promoted_factual