戻る

Rails6.0


お仕事売買サイトの構築 Rails6.0

  (0)
3,000円

タスク3-5   仕事モデル

このタスクについて


タスクの内容を一部抜粋します。
プロジェクトを購入していただくとこのタスクの内容の全てを読みやすい表示で見ることができます。
プログラムコードが色分けされて見やすくなります。
プログラムコードに行番号が付きます。
本文が色分けされて見やすくなります。
そしてこのアプリケーションのフルコードをダウンロードすることが可能になります。




仕事のモデルを作成します。


コマンド(4つ)
rails g model Category name --no-test-framework


一文です。
rails g model Gig title video active:boolean has_single_pricing:boolean user:references category:references --no-test-framework


一文です。
rails g model Pricing title description:text delivery_time:bigint price:bigint pricing_type:bigint gig:references --no-test-framework


アクションテキストのインストール
rails action_text:install


「db\migrate\20200708052213_create_gigs.rb」ファイルの記述を以下のように変更します。


記述更新 db\migrate\20200708052213_create_gigs.rb
6行目と7行目に「, default: false」の記述を追加しています。
 class CreateGigs < ActiveRecord::Migration[6.0] 

  def change 
    create_table :gigs do |t| 
      t.string :title 
      t.string :video 
      t.boolean :active, default: false 
      t.boolean :has_single_pricing, default: false 
      t.references :user, null: false, foreign_key: true 
      t.references :category, null: false, foreign_key: true 
      t.timestamps 
    end 
  end 
end 



コマンド マイグレーション適用
rails db:migrate


「app\models\gig.rb」ファイルを以下の内容に更新します。



app\models\gig.rb
 class Gig < ApplicationRecord 

  belongs_to :user 
  belongs_to :category 

  has_many :pricings 
  has_many_attached :photos 
  has_rich_text :description 
  accepts_nested_attributes_for :pricings 
  validates :title, presence: { message: '空白にはできません' } 
end 



「app\models\category.rb」ファイルを以下の内容に更新します。


app\models\category.rb
 class Category < ApplicationRecord 
    has_many :gigs 
end 



「app\models\user.rb」ファイルに以下の記述を追加します。


記述追加 app\models\user.rb(3行目)
has_many :gigs



app\models\user.rb
 
class User < ApplicationRecord 

  has_many :gigs 
  has_one_attached :avatar 

  # Include default devise modules. Others available are: 
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable 
  devise :database_authenticatable, :registerable, 
         :recoverable, :rememberable, :validatable, 
         :omniauthable, :confirmable 

  validates :full_name, presence: true, length: {maximum: 50}      

  def self.from_omniauth(auth) 
    user = User.where(email: auth.info.email).first 
    if user 
      if !user.provider 
        user.update(uid: auth.uid, provider: auth.provider, image: auth.info.image) 
      end 
      return user 
    else 
      where(provider: auth.provider, uid: auth.uid).first_or_create do |user| 
        user.email = auth.info.email 
        user.password = Devise.friendly_token[0, 20] 
        user.full_name = auth.info.name   # ユーザーモデルに名前があると仮定 
        user.image = auth.info.image # ユーザーモデルに画像があると仮定 
        user.uid = auth.uid 
        user.provider = auth.provider 
      end 
    end 
  end 
  
end 




この続きはプロジェクトを購入していただくことで見ることができます。
プロジェクトを購入していただくとこのタスクの内容の全てを読みやすい表示で見ることができます。
プログラムコードが色分けされて見やすくなります。
プログラムコードに行番号が付きます。
本文が色分けされて見やすくなります。
そしてプロジェクトを購入するとこのアプリケーションのフルコードをダウンロードすることができます。

まだレビューはありません。

お仕事売買サイトの構築 Rails6.0

3,000円

フリーランスの方がお仕事を登録し、仕事を探している人が探して買うことができます。
お仕事を探している人がリクエストを出してお仕事をしてくれる人を募集する事もできます。
お仕事が売れると売上の80%が自動で指定口座に振り込まれます。
お仕事の購入はクレジットカードで決済します。
質問があればメッセージを送ることができ、リアルタイムで会話表示することができます。
検索機能、写真のアップロード、レビュー機能の実装、Facebook認証、アマゾンS3の利用方法も解説。
HEROKUへのデプロイ方法を解説。
フルコードのダウンロード可能。

タスク数: 146