ruby on rails - 期望定义的loadError

时间:2013-06-20 10:55:23

标签: ruby ruby-on-rails-3

我有几个小时的问题,但我找不到解决方案。我发现了一些与我相似的问题,但仍然没有运气。 我的控制器中有一个方法:

def get_game_site_log_id(game)
  Game_site_log.connection.select_values("SELECT id FROM game_site_logs 
  WHERE game_id = " + game["game_id"] + "AND site_id = " + @site.id + ";")
end

我得到LoadError期望的game_site_log.rb来定义Game_site_log。我试着补充一下:

require File.dirname(__FILE__) + "game_site_log.rb"

但是它不是从game_site_log.rb加载模型,而是试图在控制器中找到该文件。这是什么最好的解决方案? 谢谢:))

2 个答案:

答案 0 :(得分:2)

  1. Ruby约定是在CamelCase中命名类,因此您的模型应该命名为GameSiteLog
  2. 由于RoR大量使用约定优于配置,为了让所有内容都能轻松运行,您应该将game_site_log.rb文件放在app/models中。

答案 1 :(得分:1)

如果你的模型在app/models/game_site_log.rb中,那么按照Rails约定,你应该将它定义为:

class GameSiteLog < ActiveRecord::Base
  # methods here
end

然后您可以使用GameSiteLog.connection.select_values()访问它。

类名应为 CamelCased ,文件名应为 under_scored