07/09/2018, 17:56

Ruby on Rails có thể bạn chưa biết

Xin chào tất cả các bạn, Hôm nay mình sẽ chia sẻ một vài típ nhỏ trong Ruby mà có thể các bạn chưa biết, cũng có thể đã biết. Nhưng riêng đối với mình thì mình cảm thấy thật hay ho, có vài cái đã biết nhưng không dùng thường xuyên nên chúng dần đi vào quên lãng. Hôm rồi tình cờ nhớ lại nên chia sẽ ...

Xin chào tất cả các bạn, Hôm nay mình sẽ chia sẻ một vài típ nhỏ trong Ruby mà có thể các bạn chưa biết, cũng có thể đã biết. Nhưng riêng đối với mình thì mình cảm thấy thật hay ho, có vài cái đã biết nhưng không dùng thường xuyên nên chúng dần đi vào quên lãng. Hôm rồi tình cờ nhớ lại nên chia sẽ luôn.

1. Hash#dig

Đa số chúng ta thường viết như thế này:

if params[:user] && params[:user][:address]
  ...
end

Nhìn vào thì có ai tưởng tượng đến &. không? Nhưng đối với các object Hash chúng ta có thể dùng dig để viết lại như sau:

if params.dig :user, :address
  ...
end

2. Object#presence_in

Tiếp theo:

colors = [:red, :green, :blue]
color = colors.include?(params[:color]) ? params[:color] : :pink

#hoặc như thế này
color = (colors.include?(params[:color]) && params[:color]) || :pink

Nếu như vậy thì như thế này trông ngon lành hơn rất nhiều ?

params[:color].presence_in(colors) || :pink

3. Object#presence

Mình nhớ lúc trước toàn dùng presence thôi, mà tự nhiên nay nhận ra về sau này toàn dùng cái cách cùi bắp khi mới vào nghề, không hiểu là vì sao lại cho nó vào một góc nữa ?

Thay vì như thế này:

object.present? ? object : nil

thì dùng như thế này nhé

object.presence

4. Module#delegate

Có rất nhiều bài nói về cách sử dụng delegate rồi, nhưng ở đây mình sẽ dùng ví dụ để thấy lợi ích của việc dùng delegate nhé

class User < ApplicationRecord
  belongs_to :company
  delegate :name, to: :company
end

...
user = User.first
user.name # thay vì phải viết user.company.name

5. Array#zip

Giả sử có 2 mảng cùng số phần tử, và muốn biến phần tử của mảng này thành key, còn phần tử mảng kia thành value tương ứng chúng ta làm như sau:

a = ["1", "2", "3"]
b = ["a", "b", "c"]

Hash[a.zip b] = {"1" => "a", "2" => "b", "3" => "c"}

6. Array#all? &:blank?

Kiểm tra array có chứa nil hoặc ' ' không:

arr = ["a",  "b",  nil, ' ']
arr.all? &:blank? # => true 

Cảm ơn các bạn đã dành thời gian để đọc. Thanks all ^.^

Bài liên quan

Ruby & Rails Tricks – Có Thể Bạn Chưa Biết ?

Xin chào mọi người !! Có thể các tricks này có người biết rồi hoặc sắp được biết nhưng mình cũng mạn phép được chia sẻ lại. Văn mình có thể không hay nhưng Ruby thì luôn đẹp Ruby 1. Có nhiều cách để call một lamda my_lambda = -&gt; { puts <span ...

Vũ Văn Thanh viết 1 tuần trước

MỘT SỐ TIPS VÀ TRICKS RUBY ON RAILS CÓ THỂ BẠN CHƯA BIẾT

Trong bài viết này mình muốn chia sẻ với các bạn một số tính năng của Ruby và Rails có thể bạn đã biết hoặc chưa biết. Một số nội dung chỉ là những thay đổi mới xuất hiện với các phiên bản Ruby hoặc Rails mới. Hãy cùng tìm hiểu nhé Tạo Hash với list các values Bạn có thể tạo một Hash từ danh ...

Trần Trung Dũng viết 16:27 ngày 18/09/2018

Ruby on Rails có thể bạn chưa biết

Xin chào tất cả các bạn, Hôm nay mình sẽ chia sẻ một vài típ nhỏ trong Ruby mà có thể các bạn chưa biết, cũng có thể đã biết. Nhưng riêng đối với mình thì mình cảm thấy thật hay ho, có vài cái đã biết nhưng không dùng thường xuyên nên chúng dần đi vào quên lãng. Hôm rồi tình cờ nhớ lại nên chia sẽ ...

Bùi Văn Nam viết 17:56 ngày 07/09/2018

5 tip có thể bạn chưa biết trong ruby on rails

Đây là một bài viết được dịch lài từ 5 ruby on rails tips you probably dont know Khi tôi làm việc với ruby on rails, tôi đã không thể ngừng tự hỏi tôi đã khám phá ra điều gì mới mẻ trong thế giới của Ruby. Và đây là cách nó hoạt động, bạn biết đấy, Ruby làm cho các developer happy và sau mỗi năm ...

Tạ Quốc Bảo viết 09:56 ngày 07/09/2018

5 Tips Ruby on Rails có lẽ bạn chưa biết

Bài viết được dịch từ nguồn 5 Ruby on Rails Tips You Probably Don’t Know Từ khi bắt đầu làm việc với Ruby on Rails, sau nhiều năm sử dụng nó, tôi không thể ngừng tự hỏi mình đã khám phá được điều gì mới mẻ trong thế giới của Ruby. Trong bài viết này, thôi chia sẻ một loạt nội dung tôi ...

Trịnh Tiến Mạnh viết 09:26 ngày 07/09/2018
0