12

私は Ruby on Rails を初めて使用し、RoR (およびベース ギター) を独学するためにベース ギターの家庭教師を作成しようとしています。チュートリアルでは Scaffold を使用して ActiveRecord クラスを作成していますが、それらはスタンドアロン テーブルに対応しているようです。belongs_toまたはは使用しませんhas_many

Scale、GuitarString、Fret の 3 つのクラスを作成したいと思います。各スケールには多数のギターストリングがあり、それぞれに多数のフレットがあります。

Scaffold を使用してこの関係を持つクラスを作成するにはどうすればよいですか? 一度にそれを行う方法はありますか、それとも Scaffold を使用して関係のない状態でそれらを作成し、手動で関係を追加する必要がありますか? それとも、Scaffold を完全に捨てる必要がありますか?

4

1 に答える 1

17

数週間前に Ruby on Rails の学習を開始しましたが、スキャフォールディングを使用せず、コマンド ライン (またはマクロのIDE)。

ただし、私が知る限り、足場を使用して何かを生成するときは、それを「リソース」を生成するものと考えるので、一度に 1 つのリソースのみを作成し、後で手動で関係を追加します。

ただし、generate model コマンドを使用すると、これらの関係を作成できます。スキャフォールディングを使用してスケール リソースを作成したとします。

その後、次のことができます

ruby script/generate model GuitarString name:string scale:references 

scale:references はbelongs_to :scaleGuitarString モデルに を作成しますが、スケール モデルに has_many :guitarstrings を追加する必要があります。

generate model コマンドは、scaffolding と同様に、ユーザーとその他の必要なファイル (フィクスチャ) の移行スクリプトも作成しますが、ビューやコントローラーなどは自動作成しません。

編集:

これは一般的に、generate/model または generate/view または generate/controller または generate/migration を使用する方法です。ほとんどの Rails 開発者は scaffolding を使用しません。というのは、その「フリーサイズ」が完全に適合することはめったにないからです。ただし、ほとんどの Rails 開発者は、私が言及した生成コマンドを使用します。ヘルパーとフィクスチャを手動で作成する時間を節約し、追加できる基本的なテンプレートを生成する各ファイルを提供します。

JetBrain の RubyMine のようないくつかの Ruby IDE には、基本的にこれらのコマンドを実行するマクロがあります。RubyMine では、ctrl+alt+g を実行してから、生成したいものに対応する別のキーを入力できます。

前述のように、「参照」という単語を使用して、属している関係を生成できます。その他は手動で追加します。

于 2010-04-04T17:23:41.823 に答える