Ruby-on-rails-rails-models
提供:Dev Guides
Ruby on Rails-モデル
モデル作成
Model.new # creates a new empty model
Model.create( :field ⇒ 'value', :other_field ⇒ 42 )
# creates an object with the passed parameters and saves it
Model.find_or_create_by_field( value )
# searches for a record where "field = value", creates
# a new record if not found
User.find_or_create_by_name_and_email( 'ramjoe', '[email protected]')
モデル関係
モデルを関連付けるには4つの方法があります。 has_one、has_many、belongs_toおよびhas_and_belongs_to_many。 次の4つのエンティティを想定-
def Order < ActiveRecord::Base
has_many :line_items
belongs_to :customer
end
def LineItem < ActiveRecord::Base
belongs_to :order
end
def Customer < ActiveRecord::Base
has_many :orders
has_one :address
end
def Address < ActiveRecord::Base
belongs_to :customer
end
次の関係を検討してください-
def Category < ActiveRecord::Base
has_and_belongs_to_many :products
end
def Product < ActiveRecord::Base
has_and_belongs_to_many :categories
end
アソシエーション結合モデル
今、次の関係を考えてみましょう。 これは、関係を定義しながら結合を使用する方法を示しています。
class Author < ActiveRecord::Base
has_many :authorships
has_many :books, :through ⇒ :authorships
end
class Authorship < ActiveRecord::Base
belongs_to :author
belongs_to :book
end
class Book < ActiveRecord::Base
has_one :authorship
end
@author = Author.find :first
# selects all books that the author's authorships belong to.
@author.authorships.collect { |a| a.book }
selects all books by using the Authorship join model
@author.books
詳細については、http://guides.rubyonrails.org/active_record_basicsl [Associations]を確認してください。