0

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

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 加载模型,而是尝试在控制器中找到该文件。什么是最好的解决方案?谢谢 :)

4

2 回答 2

2
  1. Ruby 约定是以 CamelCase 命名类,所以你的模型应该命名为GameSiteLog.
  2. 由于 RoR 大量使用约定而不是配置,为了让一切轻松运行,您应该将game_site_log.rb文件放入app/models.
于 2013-06-20T11:03:04.177 回答
1

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

class GameSiteLog < ActiveRecord::Base
  # methods here
end

然后您可以使用GameSiteLog.connection.select_values().

类名应该是CamelCased并且文件名应该是under_scored

于 2013-06-20T11:09:35.027 回答