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!