コマンド
1文です。
rails g model Reservation user:references room:references start_date:datetime end_date:datetime price:bigint total:bigint
コマンド マイグレーション
rails db:migrate
記述追加 app\models\room.rb
「has_many :reservations」の記述追加(4行目)
class Room < ApplicationRecord belongs_to :user has_many :photos has_many :reservations geocoded_by :address after_validation :geocode, if: :address_changed? validates :home_type, presence: true validates :room_type, presence: true validates :accommodate, presence: true validates :bed_room, presence: true validates :bath_room, presence: true def cover_photo(size) if self.photos.length > 0 self.photos[0].image.url(size) else "blank.jpg" end end end
記述追加 app\models\user.rb
「has_many :reservations」の記述追加(17行目)
class User < ApplicationRecord # アバター画像表示用 include Gravtastic gravtastic # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable, :confirmable #長さ50文字以下 入力必須 validates :fullname, presence: true, length: {maximum: 50} has_many :rooms has_many :reservations end
記述追加 config\routes.rb
「resources :reservations, only: [:create]」の記述追加(20行目)
Rails.application.routes.draw do #ルートをpages#homeに設定 root 'pages#home' get 'pages/home' resources :users, only: [:show] resources :rooms, except: [:edit] do member do get 'listing' get 'pricing' get 'description' get 'photo_upload' get 'amenities' get 'location' end resources :photos, only: [:create, :destroy] resources :reservations, only: [:create] end devise_for :users, path: '', path_names: {sign_in: 'login', sign_out: 'logout', edit: 'profile', sign_up: 'registration'}, controllers: {registrations: 'registrations'} # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html end