0

しばらく中断していた Ruby on Rails の開発に戻ります。私が取り組んでいるこの単純な練習アプリの適切なモデルの関連付けと移行を行うのに問題があります。基本的に、私は3つのモデルを持っています:

都市、マーカー、およびカテゴリ

City -> name:string, desc:text Marker -> name:string, lat:decimal, lng:decimal Category -> name:string

都市には、マップ上に複数のマーカーがあります。各マーカーはカテゴリ (レストラン、レコード店など) に属します。私が現時点で持っているものは次のとおりです。

class City < ActiveRecord::Base
  has_many :markers
end

class Marker < ActiveRecord::Base
  has_one :category
  belongs_to :city
end

class Category < ActiveRecord::Base
  belongs_to :marker
end

私はこれを間違っていると感じています。たとえそうでなくても、私の本当の問題は移行を解決することです。私は次のようなことを考えました:

rails generate migration Marker name:string lat:decimal lng:decimal city_id:integer

City/Marker モデルを結び付けますが、うまくいきませんでした。私はこれらすべてにまったく慣れておらず、協会が私を止めさせました. どんな助けでも大歓迎です!

バリー

4

3 に答える 3

1

モデルと移行ジェネレーターを混同していると思います。

モデルを生成する場合:

rails generate model Marker name:string lat:decimal lng:decimal city_id:integer

このモデルの移行を生成する場合:

rails generate migration AddNameToMarkers name:string
于 2012-09-15T20:40:00.760 に答える
0

移行ジェネレーターの正しい構文ではありません。ただし、リソースを生成したいと思います。コマンドmigrationでを置き換えるだけです。resource

rails generate resource Marker name:string lat:decimal lng:decimal city_id:integer

これにより、コントローラー、モデル、および移行も生成されます。

于 2012-09-15T20:33:38.440 に答える
0

マーカーと都市の関係を追加したい場合は、最後に追加する必要があると思います

city:references

于 2012-09-15T20:35:42.647 に答える