더 레일즈 롤러코스터
schema.rb
create_table "bets", force: :cascade do |t|
t.boolean "placed"
t.datetime "time"
t.integer "odds"
t.integer "event_id"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
create_table "betslips", force: :cascade do |t|
t.boolean "placed"
t.integer "amount"
t.string "status"
t.integer "bet_id"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
create_table "events", force: :cascade do |t|
t.string "name"
t.datetime "time"
t.integer "league_id"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
create_table "leagues", force: :cascade do |t|
t.string "name"
t.integer "sport_id"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
create_table "sports", force: :cascade do |t|
t.string "name"
t.string "type"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
end
resources: sports, only: [:index] do
resources: leagues, only: [:index] do
resources: events, only: [:index, :show] do
resources: bets, shallow: true do
resources: betslip, shallow: true
end
end
end
end
보시다시피 이것은 매우 복잡해지고 매우 빠르게 진행될 수 있습니다. 나는 학교 수업을 다시 생각하고 인터넷 검색을했습니다. 일반적인 경험 법칙은 경로가 한 수준 이상 깊어서는 안 된다는 것입니다. 이것은 말이 되었고, 완전한 화장을 할 때였습니다. API 끝점에 연결하여 시작한 다음 데이터베이스, 경로 및 관계를 구성했습니다. 이 규칙을 사용하여 관심사를 분리하고 편안한 라우팅을 훨씬 덜 복잡하게 만들 수 있었습니다. 예를 들어:
create_table "bets", force: :cascade do |t|
t.integer "odd_id"
t.integer "user_id"
t.integer "amount"
t.string "team"
t.integer "odds"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
create_table "odds", force: :cascade do |t|
t.integer "sport_id"
t.string "sport_key"
t.string "sport_nice"
t.string "teams"
t.string "home_team"
t.datetime "commence_time"
t.string "site_and_odds"
t.string "odds"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
create_table "sports", force: :cascade do |t|
t.string "key"
t.boolean "active"
t.string "group"
t.string "details"
t.string "title"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
resources :sports, only: [:index] do
resources :odds, only: [:index]
end
resources :odds, only: [:show] do
resources :bets, shallow: true
end
재구성 전에 실행
rake routes
을 실행하면 실제로 읽을 수 없는 거대한 데이지 체인 경로 헬퍼가 생겼습니다. 화장을 통해 목표를 달성하고 편안한 컨벤션을 계속해서 실천할 수 있었습니다.사진 제공: Jack Koppa에서 Pixabay에 의해 Pixabay 이미지
Eak K.에서 Pixabay의 이미지
Reference
이 문제에 관하여(더 레일즈 롤러코스터), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/glennanj1/the-rails-rollercoaster-12cl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)