2013-06-20 51 views
0

我有一個小時和幾個小時的問題,但我找不到解決方案。我發現了一些類似的問題,但仍然沒有運氣。 我有一個方法在我的控制器:紅寶石在rails - loadError預計會定義

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模型,它試圖找到控制器文件。什麼是最好的解決方案? 謝謝:)

回答

1

如果你的模型是app/models/game_site_log.rb然後,通過Rails的約定,你應該把它定義爲:

class GameSiteLog < ActiveRecord::Base 
    # methods here 
end 

然後你就可以用GameSiteLog.connection.select_values()訪問它。

類名應該駝峯格式和文件名應該是under_scored

+0

謝謝。這是問題:) – ishwr

2
  1. 紅寶石約定是首字母大寫的名稱類,所以你的模型應該被命名爲GameSiteLog
  2. 由於RoR大量使用約定而不是配置,爲了讓所有內容都能輕鬆運行,您應該將game_site_log.rb文件放入app/models