7

Ruby on Rails は初めてです。これまでのところ、スキャフォールディングを使用して CRUD 操作のみを作成しました。ここで、ハードコーディングではなく、足場を使用して 2 つのエンティティを 1 つのフォームに統合する必要があります。

スクリプトを使用して 2 つのエンティティを足場にするにはどうすればよいでしょうか?

Student_address と Student_phnumber という 2 つのエンティティがあります。これら 2 つのエンティティを CRUD 操作を実行できる単一のフォームにスキャフォールディングし、スキャフォールディングによってこれを実現したいと考えています。

Student_address は、Hse_name、Street_name などで構成されるエンティティです。 Student_phnumber は、ph_number、type などで構成される別のエンティティです。

これら 2 つのエンティティを一緒に足場にしたいと考えています。

4

3 に答える 3

6

スキャフォールディングは、完全な基本リソースをモデル化するために設定されたジェネレーターにすぎません。デフォルトでRailsに付属している、スキャフォールディング以外の多くのジェネレーターがあります。関連する一連のモデルのリソースを生成するように設定されているものはありません。その大部分は、このような関係を表現するためのさまざまな方法により、一般的な UI を作成することが事実上不可能になっているためだと思います。また、足場は、ニーズに合わせて変更することを意図して、非常に迅速に起動して実行できるように設定されています. これらの変更は通常、重要なアプリケーションにかなり関与しています。人気のある気の利いたジェネレーターを含む、多くのサードパーティのジェネレーターがあります、しかし、私の知る限り、生成したい種類のコードを作成するものはありません。これが頻繁に設定する必要がある関係である場合は、タスクを処理するために独自のジェネレーターを作成することを検討してください。実際には非常に簡単です。それを行う良い方法は、理想的なケースを実装し、それからジェネレーターを作成することです。

編集:

また、変数/属性名を調整したい場合もあります。小文字でアンダースコアを付ける必要があるため、Street_nameになりstreet_nameます。任意の略語もコード化/保守を非常に難しくするためStudent_phnumberstudent_phone_number. ph_numberこれを行う理由は、一貫性 ( vsなど) とは別に、 Rails がこれらのような内部メソッドStudent_phnumberでケーシングとスペーシングを実際に使用するためです。

于 2012-11-07T04:53:19.913 に答える
2

私があなたを理解しているかどうか見てみましょう。

説明しているモデル/エンティティの関係は次のとおりです。

student
   address
    - house_name
    - street_name
    - etc
   phone_number
    - number
    - area_code
    - etc

あなたはしたい:

a)モデルを自動的に生成する

b)住所と電話番号を設定するためのフィールドを含む、学生を作成するためのフォームを含むコントローラー/ビューを自動的に生成します

わかった。b)Railsスキャフォールドを介して実行することはできません。ただし、ActiveSupport gem(ドキュメントはこちら)を使用してこれを実現できます。これがあなたがすることです:

gem install active_scaffold
rails g active_scaffold Student name:string
rails g active_scaffold PhoneNumber area_code:integer number:integer student_id:integer
rails g active_scaffold Address first_line:string second_line:string student_id:integer

ここで行う必要がある唯一の手動作業は、モデルにポップインして関係を追加することです。

Address
 belongs_to :student
PhoneNumber
 belongs_to :student
Student
 has_one :address
 has_one :phone_number

ActiveScaffoldが行うことは、次のようなビューを自動的に生成することです。

ここに画像の説明を入力してください

そのフォームに記入すると、モデルがすべて保存され、リンクされます。

于 2012-11-10T22:10:02.367 に答える
0

これはあなたが探しているものですか?

rails generate scaffold Student student_address:string student_phnumber:string

于 2012-10-29T04:26:06.883 に答える