12/08/2018, 18:21

[Có thể bạn chưa biết?] Một vài cách viết ngắn gọn trong Ruby on Rails (phần 2)

Tiếp nối phần 1, mình sẽ tiếp tục mang đến những cách viết ngắn gọn trong Ruby on Rails cho các bạn trong post này. Lên đường nàoooo! Nối String với "# {}" thay vì "+" "Hello, " + user . name + "!" Nhìn đẹp hơn rồi nhỉ ^^ "Hello, #{ user . name } !" String với nhiều dòng ...

Tiếp nối phần 1, mình sẽ tiếp tục mang đến những cách viết ngắn gọn trong Ruby on Rails cho các bạn trong post này. Lên đường nàoooo!

Nối String với "# {}" thay vì "+"

"Hello, " + user.name + "!"

Nhìn đẹp hơn rồi nhỉ ^^

"Hello, #{user.name}!"

String với nhiều dòng

Cái này khá hay ho và đẹp mắt, thay vì dùng để xuống dòng

text = "Hello, world!
Good-bye, world!"

Chúng ta có thể viết như thế này nè

text = <<-TEXT
Hello, world!
Good-bye, world!
TEXT

Cố định hằng số với String

Dù hằng số được khai báo là một chuỗi ký tự, một mảng hay một hash, thì cũng cần cố định giá trị của nó (đúng như ý nghĩa của hằng số là bất biến), không nên thay đôi hằng số

CONTACT_PHONE_NUMBER = "03-1234-5678"
CONTACT_PHONE_NUMBER << "@#$%^"
puts CONTACT_PHONE_NUMBER # => 03-1234-5678@#$%^

Cố định với freeze

CONTACT_PHONE_NUMBER = "03-1234-5678".freeze
CONTACT_PHONE_NUMBER << "@#$%^" # => RuntimeError: can't modify frozen String

Với mảng

ADMIN_NAMES = ["Tom", "Alice"]
ADMIN_NAMES << "Taro"
ADMIN_NAMES[0].downcase!
puts ADMIN_NAMES # => ["tom", "Alice"]
ADMIN_NAMES = ["Tom", "Alice"].freeze.each(&:freeze)
ADMIN_NAMES << "Taro" # => RuntimeError: can't modify frozen Array
ADMIN_NAMES[0].downcase! # => RuntimeError: can't modify frozen String

Với Số nguyên

Thực ra, vì số nguyên (FixNum) không thể thay đổi, nó không quan trọng nếu bạn không đóng băng nó =)))

# Không có lỗi và cũng không có ý nghĩa (yaoming)
ITEM_LIMIT = 500.freeze

Khi khởi tạo array hay hash, có thể (nên) giữ dấu "," ở phần tử cuối cùng

countries = [
  :japan,
  :italy,
  :uk
]

capitals = {
  japan: 'Tokyo',
  italy: 'Rome',
  uk: 'London'
}
countries = [
  :japan,
  :italy,
  :uk,
]

capitals = {
  japan: 'Tokyo',
  italy: 'Rome',
  uk: 'London',
}

Tại sao mình khuyên các bạn nên giữ dấu "," vào phần tử cuối cùng khi code, vì sẽ có trường hợp các phần tử được thêm vào trong tương lai, khi đó chúng ta không cần phải sửa đổi dòng trước đó, có thể tiết kiệm cho bạn 1 chút thời gian. Ngoài ra, nếu bạn thêm dấu phẩy vào tất cả các phần tử, bạn cũng có thể sửa đổi thứ tự của các phần tử bằng cách cắt và dán đơn giản mà không phải lo lắng gì cả.

Khi tạo mảng, hãy sử dụng %w(),%i() thay vì []

Cách viết này khá ngắn gọn và nhìn code đẹp + pro hơn xíu xíu đó             </div>
            
            <div class=

0