web-dev-qa-db-ja.com

Ruby on Railsはモデルfield:typeを生成します - field:typeのオプションは何ですか?

私は新しいモデルを生成し、他のモデルのIDを参照するための構文を忘れようとしています。私は自分で調べてみたいのですが、私のRuby on Railsドキュメンテーションリンクの中で、最も確実なソースを見つける方法を私は考え出していません。

$ Rails g model Item name:string description:text(ここではreference:productまたはreferences:product)しかし、もっと良い質問はwhere or howです。将来的にこのような愚痴を簡単に探すことができるでしょうか。

注:これらのオプションの1つを間違えて移行を実行するするとRuby on Railsはデータベースを完全に台無しにしてしまうので、rake db:rollbackは無力です。 Rails g modelによって返される "詳細な"情報がまだ私にスクラッチを残す...私は何かを理解していないと確信していますが、私がするまで...

306
Meltemi
:primary_key, :string, :text, :integer, :float, :decimal, :datetime, :timestamp,
:time, :date, :binary, :boolean, :references

テーブル定義 の節を参照してください。

470
Paul Schreiber

別のモデルを参照するモデルを作成するには、Ruby on Railsモデルジェネレータを使用します。

$ Rails g model wheel car:references

これはapp/models/wheel.rbを生成します。

class Wheel < ActiveRecord::Base
  belongs_to :car
end

そして、以下の移行を追加します。

class CreateWheels < ActiveRecord::Migration
  def self.up
    create_table :wheels do |t|
      t.references :car

      t.timestamps
    end
  end

  def self.down
    drop_table :wheels
  end
end

マイグレーションを実行すると、以下がdb/schema.rbに入ります。

$ rake db:migrate

create_table "wheels", :force => true do |t|
  t.integer  "car_id"
  t.datetime "created_at"
  t.datetime "updated_at"
end

ドキュメンテーションに関しては、Railsジェネレータの出発点は Ruby on Rails:(Railsコマンドラインガイド) です。これについては、 APIドキュメント を参照してください。利用可能なフィールドタイプについて.

187
Troy

$ Rails g model Item name:string description:text product:references

私もガイドが使いにくいと感じました。わかりやすいですが、探しているものを見つけるのは難しいです。

また、私はRails generateコマンドを実行する一時プロジェクトを持っています。それから私が彼らを動かしたら、私は私の本当のプロジェクトでそれを実行します。

上記のコードの参照先: http://guides.rubyonrails.org/getting_started.html#associating-models

7
B Seven

http://guides.rubyonrails.org Ruby on Railsの基本的な機能を理解しようとしているなら、良いサイトになるはずです。

モデルを生成しながら関連付けるモデルへのリンクは次のとおりです。 http://guides.rubyonrails.org/getting_started.html#associating-models

3
Raghu

このコマンドを書くときは、テキストを大文字にしないでください。例えば:

書いてください:

Rails g model product title:string description:text image_url:string price:decimal

書かないでください

Rails g Model product title:string description:text image_url:string price:decimal

少なくとも私にとっては問題でした。

3
Victor Augusto

RORでは、他を参照するモデルを作成するのは非常に簡単です。

Rails gモデルアイテム名:文字列説明:テキスト製品:参照

このコードは、Itemテーブルに「product_id」列を追加します

0
chandanjha

私は同じ問題を抱えていたが、私のコードは少し異なっていた。

def new @project = Project.new end

そして私のフォームは次のようになりました。

<%= form_for @project do |f| %> and so on.... <% end %>

それは全く正しかったので、私はそれを理解する方法を知りませんでした。

最後に、url: { projects: :create }の後に<%= form-for @projectを追加するだけでうまくいきました。

0
justinedps26