2010-11-17 4 views
1

Je suis nouveau sur Rails, mais j'ai besoin d'utiliser une clé primaire composite dans mon application exécutant Ruby 1.9.2 et Rails 3. Je ne suis pas en mesure d'obtenir des touches composites fonctionnent correctement dans mon application Ruby on Rails. J'ai suivi les instructions the compositekeys site mais je reçois toujours la même erreur: pas de fichier à charger - composite_primary_keysRuby error pas un tel fichier à charger - composite_primary_keys

1 - petit bijou installer composite_primary_keys
sudo 2 - Ajouter les require « composite_primary_keys » à la fin du fichier conf/environment.rb
3 - Ajout des set_primary_keys

Ma liste gemme ressemble à ceci:

abstract (1.0.0) 
actionmailer (3.0.1) 
actionpack (3.0.1) 
activemodel (3.0.3, 3.0.1) 
activerecord (3.0.1) 
activeresource (3.0.1) 
activesupport (3.0.3, 3.0.1) 
arel (2.0.3, 1.0.1) 
builder (2.1.2) 
bundler (1.0.3) 
composite_primary_keys (2.3.5.1) 

Ma classe de domaine ressemble à ceci:

class Radioreport < ActiveRecord::Base 
    set_primary_keys :service_id, :date_id 
    belongs_to :report_date, :foreign_key => "date_id" 
    belongs_to :service, :foreign_key => "service_id" 
    ... 

Et mon dossier de l'environnement ressemble à ceci:

# Load the rails application 
require File.expand_path('../application', __FILE__) 
# Initialize the rails application 
Upreports::Application.initialize! 
require 'composite_primary_keys' 

L'erreur que je reçois est le suivant quand je lance mon 'test de coupe':

rake aborted! 
no such file to load -- composite_primary_keys 

Le test unitaire est :

require 'test_helper' 
require 'rubygems' 
require 'composite_primary_keys' 

class RadioreportTest < ActiveSupport::TestCase 
    fixtures :radioreports, :services, :genres, :groups, :locations, :report_dates 
    def setup 
    @radioReport = Radioreport.new 
    end 

    def test_should_put_all_radios_and_totals_in_a_hash 
    transactions = Radioreport.find(:all) 
    reportTransactions = @radioReport.getRadioTotalsByDayMap(transactions) 
    assert_not_nil(reportTransactions) 
    assert_equal(2, reportTransactions.size) 
    previousKey = nil 
    previousValue = nil 
    reportTransactions.each{|key, value| 
     if(previousKey == nil || previousValue == nil) 
     previousKey = key 
     previousValue = value 
     else 
     assert_not_nil(key) 
     assert_not_equal(previousKey, key) 
     assert_not_nil(value) 
     assert_not_equal(previousValue, value) 
     end 
    } 
    end 

J'ai vérifié les éléments suivants thread, mais celui-ci ne s'applique pas. J'ai déjà vérifié mon râteau, ma gemme, etc.
Merci les gars!

Répondre

0

Selon le discussion in Github, CPK ne prend pas encore en charge Rails 3. Toutefois, il semble y avoir des personnes travaillant dans différentes fourches pour que cela fonctionne.

Questions connexes