私は新しいモデルを生成し、他のモデルの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
によって返される "詳細な"情報がまだ私にスクラッチを残す...私は何かを理解していないと確信していますが、私がするまで...
:primary_key, :string, :text, :integer, :float, :decimal, :datetime, :timestamp,
:time, :date, :binary, :boolean, :references
テーブル定義 の節を参照してください。
別のモデルを参照するモデルを作成するには、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ドキュメント を参照してください。利用可能なフィールドタイプについて.
$ Rails g model Item name:string description:text product:references
私もガイドが使いにくいと感じました。わかりやすいですが、探しているものを見つけるのは難しいです。
また、私はRails generate
コマンドを実行する一時プロジェクトを持っています。それから私が彼らを動かしたら、私は私の本当のプロジェクトでそれを実行します。
上記のコードの参照先: http://guides.rubyonrails.org/getting_started.html#associating-models
http://guides.rubyonrails.org Ruby on Railsの基本的な機能を理解しようとしているなら、良いサイトになるはずです。
モデルを生成しながら関連付けるモデルへのリンクは次のとおりです。 http://guides.rubyonrails.org/getting_started.html#associating-models
このコマンドを書くときは、テキストを大文字にしないでください。例えば:
書いてください:
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
少なくとも私にとっては問題でした。
RORでは、他を参照するモデルを作成するのは非常に簡単です。
Rails gモデルアイテム名:文字列説明:テキスト製品:参照
このコードは、Itemテーブルに「product_id」列を追加します
私は同じ問題を抱えていたが、私のコードは少し異なっていた。
def new @project = Project.new end
そして私のフォームは次のようになりました。
<%= form_for @project do |f| %> and so on.... <% end %>
それは全く正しかったので、私はそれを理解する方法を知りませんでした。
最後に、url: { projects: :create }
の後に<%= form-for @project
を追加するだけでうまくいきました。