2012-05-05 9 views
1

私はActiveRecordをどのように含めるべきかを意味するわけではありませんが、私に説明してください。Rubyだけを使用して、つまりRailsを使用しないでhas_many関係を行うにはどうすればよいですか?

GamedifficultyLevelIDDifficultyLevelというオブジェクトを付けたいと考えています。 RailsとActiveRecordので

(それは私が精通しています何)これらは、テーブルだろうと私はhas_manybelongs_toメソッドを持っているでしょうし、私は物事を取得するためにdifficultyLevelIDを使用することができ、その難易度はGame.difficulty_level.name

可能性があり

データベースを持たないRubyプログラムを実行していて、その関係を使用したい場合は、Gameに難易度レベルがIDnameレベルがdifficultiesクラスになるようにしたいのですが、どうすればいいですか? 、維持し、関係を照会する)私はゲームの難易度のレベルの名前を得ることができるようにRubyとだけ?

+0

は、なぜあなたはゲーム内の困難なレベルIDをしたいですか? RailsはIDをゲーム内に持っているので、難易度表を参照することができます。オブジェクトだけを持っている場合は、難易度オブジェクトをゲームに設定し、難易度オブジェクトからIDを取得します。 – dj2

答えて

0

20時間以内に回答がありませんでしたので、自分自身を投稿しました。

class Soduko 
    attr_accessor :name, :rows, :columns, :difficulty_level 
    def initialize // will probably move to parameters as defaults. 
    @rows= 9 
    @columns= 9 
    @name= 'My Soduko' 
    @difficulty_level= 'Medium' 
    end 

    def initial_number_count 
    DifficultyLevel.start_with_numbers('Medium') 
    end 

end 

class DifficultyLevel 

    def self.start_with_numbers(difficulty_level) 
    case difficulty_level 
     when 'Easy' 
     then 30 
     when 'Medium' 
     then 20 
     when 'Hard' 
     then 10 
     else 20 
    end 

    end 

end 

、そしてもちろんのテスト:

require './soduko' 

describe Soduko, '.new' do 

    before { @soduko_board = Soduko.new } 

    it "Should allow for a new Board with 9 rows (default) to be created" do 
    @soduko_board.rows.should == 9 
    end 

    it "Should allow for a new Board with 9 columns (default) to be created" do 
    @soduko_board.columns.should == 9 
    end 

    it "should have a default difficulty level of 'Medium'" do 
    @soduko_board.difficulty_level.should == 'Medium' 
    end 

    it "should have 10 initial numbers" do 
    @soduko_board.initial_number_count.should == 20 
    end 

end 

describe DifficultyLevel, '.new' do 

    it "should exist" do 
    @difficulty_level = DifficultyLevel.new 
    end 

    # More to be added... 

end 
+0

soduko?あなたは「スドク」を意味しましたか? :) –

関連する問題