OOZOU
ติดต่อเรา
กลับไปหน้า TIL
ruby on rails

ให้ Rubocop และ ESLint ignore gem ที่ bundle ไว้ใน GitHub Actions

19 มกราคม 2565

โปรเจกต์ Rails มักติดตั้ง gem ลงใน vendor directory ใน GitHub actions เพื่อให้ cache ไว้ใช้ในรอบถัด ๆ ไปได้

ถ้าคุณใช้ code linter ใน action คุณต้อง exclude vendor/bundle/\* ออกเพื่อป้องกัน false positive

สำหรับ ESLint ตั้งค่าได้ผ่าน ignorePatterns

// ./.eslintrc.json
{
  "ignorePatterns": [
    "vendor/bundle/*"
  ]
}

สำหรับ Rubocop สามารถ exclude ได้ผ่าน config AllCops

# ./.rubocop.yml
AllCops:
  Exclude:
    - 'vendor/**/*'

ความสำคัญของการ Ignore Gem ที่ Bundle ไว้ใน Code Linter

ในการพัฒนาซอฟต์แวร์ การรักษาคุณภาพโค้ดให้อยู่ในระดับสูงเป็นสิ่งจำเป็น code linter คือเครื่องมือที่ช่วยเรื่องนี้ด้วยการทำ static code analysis ซึ่งตรวจจับข้อผิดพลาดที่อาจเกิดขึ้นและบังคับใช้ coding style ให้สม่ำเสมอได้ อย่างไรก็ตาม เวลาใช้ linter ในสภาพแวดล้อม continuous integration อย่าง GitHub Actions การตั้งค่าให้ถูกต้องเพื่อเลี่ยง false positive เป็นเรื่องสำคัญมาก

gem ที่ bundle ไว้ ซึ่งมักเก็บอยู่ใน vendor directory คือ dependency ภายนอกที่อาจถูก code linter แจ้งเตือนถ้าไม่ได้ exclude ให้เรียบร้อย การ ignore directory เหล่านี้ช่วยให้ linter โฟกัสที่ source code ของคุณแทนที่จะเป็น library ภายนอก และรักษาความน่าเชื่อถือของผลการวิเคราะห์โค้ดไว้ได้

ตั้งค่า Linter ให้ Exclude Gem ที่ Bundle ไว้

สำหรับโปรเจกต์ JavaScript ที่ใช้ ESLint คุณตั้งค่าให้ linter ignore directory vendor/bundle/* ได้ผ่านการตั้งค่า ignorePatterns ในไฟล์ .eslintrc.json เพื่อให้ตรวจเฉพาะโค้ดของคุณเท่านั้น ช่วยยกระดับคุณภาพโค้ดโดยไม่มีสิ่งรบกวนที่ไม่จำเป็น

// ./.eslintrc.json
{
  "ignorePatterns": [
    "vendor/bundle/*"
  ]
}

ในทำนองเดียวกัน สำหรับโปรเจกต์ Ruby ที่ใช้ Rubocop คุณ exclude vendor directory ได้ด้วยการเพิ่มกฎ Exclude ไว้ใต้ AllCops ในไฟล์ config .rubocop.yml เพื่อให้ static code analysis โฟกัสที่ source code จริง ๆ ของคุณ

# ./.rubocop.yml
AllCops:
  Exclude:
    - 'vendor/**/*'

เมื่อตั้งค่า code linter ให้ exclude gem ที่ bundle ไว้ คุณก็รักษามาตรฐานคุณภาพโค้ดในระดับสูงไว้ได้ พร้อมกับเลี่ยง false positive ใน static code analysis ของคุณ

#RUBY-ON-RAILS

เพิ่มเติมเกี่ยวกับ ruby on rails

ruby on rails10 กุมภาพันธ์ 2565

ใช้ Pundit Policy จัดการ permitted parameters ทั้งค่า default และแยกราย action

ในการจัดการ permitted params คุณสามารถเพิ่ม permitted\attributes และ permitted\attributes\for\#{action} ใน policy ของคุณได้ เช่น

ruby on rails31 มกราคม 2565

ใช้ `requestSubmit` สำหรับการ submit form ร่วมกับ Turbo

Turbo คอยฟัง event submit ที่เกิดขึ้นบน form ดังนั้นให้ใช้ requestSubmit เสมอเมื่อจะ submit form ด้วย JS

ruby on rails18 เมษายน 2564

Rails 6, Ruby 3, Bootstrap 5 และ Hotwire

ต่อยอด blogpost ของ Bootrails ด้วย Hotwire: ของใหม่สุดเท่ทั้งหมด (ณ ตอนที่เขียน TIL นี้):

มีโปรเจกต์ในใจ?

เรายินดีรับฟังสิ่งที่คุณกำลังสร้าง

เริ่มต้นสนทนาhello@oozou.com
OOZOU Logo

กรุงเทพฯ · สิงคโปร์ · ฮ่องกง

X
Facebook
Instagram
LinkedIn

บริการ

  • พัฒนาเว็บ
  • เอเจนต์ AI และ Generative AI
  • พัฒนาแอปมือถือ
  • วิศวกรรมและวิเคราะห์ข้อมูล
  • UI/UX และการออกแบบผลิตภัณฑ์
  • การเปลี่ยนผ่านสู่ดิจิทัล

บริษัท

  • เกี่ยวกับเรา
  • ร่วมงานกับเรา
  • บล็อก
  • กรณีศึกษา
  • Today I Learned
  • ติดต่อเรา

เพิ่มเติม

  • อุตสาหกรรม
  • เครือข่ายพันธมิตร
© 2026 OOZOU สงวนลิขสิทธิ์
นโยบายความเป็นส่วนตัวจรรยาบรรณนโยบาย ABAC