ryuta1346 / beautyspaces_v2 Goto Github PK
View Code? Open in Web Editor NEW美容室のデッドスペース活用サービス
美容室のデッドスペース活用サービス
path
を/track_record
として/admin/salon
配下に設定admin/salons_controller.rb
内にactionとしてtrack_record
を追加def track_record
で予約管理で"完了済み"にしたデータを表示するapp/controllers/application_controller.rb
でdeviseを使ったログイン完了後の画面遷移で使うafter_sign_in_path
を、case
を使わない方法で修正/mypage
のトップ部分に予約済み情報を表示/mypage
のトップ部分に予約済み情報を表示/mypage
のトップ部分に予約済み情報を表示Salonと施術可能時間 > Stylistの施術時間
の場合には予約できないようにするdevise
で生成されるregistrations
ディレクトリ配下のnew
ファイルで全てのtypeを登録できる/registrations/new
で一括登録するものを、どのように分割できるのかの調査Customer model
でバリデーションが設定されておらず、Customer登録時の入力制限など登録内容に合わせた制限が必要path
を/crm
として/admin/salon
配下に設定admin/salons_controller.rb
内にactionとしてcrm
を追加def crm
でサロンを利用した顧客のデータを読み込めるように以下は今後の話として何となくみてもらえればいいと思います(今やらなくて大丈夫です)。
欲を言うと、これ毎回resourceのclassを判定しているので冗長なのと、ログインしたいユーザーのタイプが増えるたびに行が増えていきます。
ので、できれば各Modelで書くか、Decorator層で各クラスごとにメソッドを作ると冗長さが無くなってより良くなると思います。
*パスの話なので、viewに関することなのでmodelに書くかは微妙なところ(まぁ今のフェーズであればModelで書くのでも良さそうかな)
例えばこんな感じ
# app/controllers/application_controller.rb
# resourceはCustomerクラスであり、もっと言うとSalonなどのSubclassなので、わざわざ場合分けしなくとも、SalonなどのModel側でメソッドを作って、それを呼んでやれば良さそう
def after_sign_in_path_for(resource)
resource.after_sign_in_path_for
end
# app/models/customer.rb
# 子クラスで定義し忘れていた際に例外を出したい
def after_sign_in_path_for
raise NotImplementedError.new("You must implement #{self.class}##{__method__}")
end
# app/models/customers/stylist.rb
def after_sign_in_path_for
admin_stylist_path
end
# app/models/customers/salon.rb
def after_sign_in_path_for
admin_salon_path
end
# app/models/customers/user.rb
def after_sign_in_path_for
user_path(self)
end
Originally posted by @yu-croco in #2
継承する際に、親でraise出す考え方は下記が参考になるかもです。
メソッドの override を強制する
Menu model
のような形で登録させていたものからselect
で複数選択できる(#15 )city
及びaddress
のような形でデータ登録させて、そこから選択させる形を検討)予約機能周りのmodel_spec
、feature_spec
, request_spec
を実装する
path
を/reserve_management
として/admin/salon
配下に設定admin/salons_controller.rb
内にactionとしてreserve_management
を追加def reserve_management
で予約可能時間として登録したデータの呼び出しができるようにする/reserve_management
で予約可能時間を登録する用のフォームを置くメニュー名
、メニュー内容
、価格
、施術時間
, 備考
を登録できるmodels/customers
配下となるように変更salon.rb
、stylist.rb
、user.rb
はそれぞれcustomer.rb
を継承しており、こうすることで継承関係がより明確化されるcustomer model
のmigration
で、type
のデータ型をinteger
に変更type
のdefault値はUser
になるように設定models/customer.rb
に定義するslim
に変更する方法を調べる(まとめる)slim
を使う方法へ移行地域
で利用するCity
とAddress
データを登録させるCity
は東京23区、Address
は渋谷区に対応するデータのみ登録City model
を作成し、City
データを登録できるようにするdb/fixture/city.rb
を作成し、Prefecture
に対応するCity
データを登録Address model
を作成し、Address
データを登録できるようにするdb/fixture/address.rb
を作成し、Prefecture
に対応するAddress
データを登録db/fixtures/prefecture.rb
をseeds
ディレクトリ配下に移行db/fixtures/category.rb
をseeds
ディレクトリ配下に移行Menu model
で登録させていたものからselect
で複数選択できるequipment model
で登録させていたものからselect
で複数選択できる path
を/reserve_index
として/admin/salon
配下に設定admin/salons_controller.rb
内にactionとしてreserve_index
を追加def reserve_index
で予約済みのデータの呼び出しができるようにするReservation
テーブルに対してにindex
をunique: true
オプションをつけて追加するSalons::Reservation
およびStylists::Reservation
とReservation
をhas_one
関連付けspec/factories/reservation.rb
に10件分のテストデータを作成するspec/models/reservation_spec.rb
にテスト作成feature_spec
を作成app/controllers/admin/salons_controller.rb
のset_current_salon
メソッドの判定処理をモデルに移行するapp/controllers/admin/stylists_controller.rb
のset_current_stylist
メソッドの判定処理をモデルに移行するpath
を/sales
として/admin/salon
配下に設定admin/salons_controller.rb
内にactionとしてsales
を追加spec/models/
配下のmodel specA declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.