Rails Idioms

Published on 🔗

Rails framework ဟာ 1.day.from_now လိုမျိုး idiom တွေကို အများကြီးထည့်ပေးထားတဲ့အတွက် ပုံမှန် rails သုံးတော့မှ ruby ကို စပြီးရေးဖြစ်တဲ့ ကျွန်တော့်လိုလူမျိုး အကြိုက်တွေ့ရသလို၊ purist တွေက အပြောအဆိုတွေလည်းခံရပါတယ်။ အဓိကရည်ရွယ်ချက်ကတော့ အဲ့ဒီ့ Idiom တွေကိုသုံးကာ ကုဒ်တွေကို အလွယ်တကူမြန်မြန်ဆန်ဆန် ရေးနိုင်ပြီး၊ ဖတ်ရတာလည်း ပိုလွယ်တဲ့အတွက်ပါ။

Thoughbot မှ ကျွန်တော်တို့လို အခုမှ rails စရေးသူများအတွက် သုံးလို့ရရက်မသုံးဖြစ်တဲ့ idiom တချို့ကို list ထုတ်ပေးထားပါတယ်။ စမ်းကြည့်လိုက်ပါဦး။

1. Partials

Original:

render partial: 'admin/shared/errors', locals: { errors: @user.errors }

Refactored:

render 'admin/shared/errors', errors: @user.errors

2. Determining a record’s existence

Original:

existing_song = Song.where(user_id: user_id, album_id: album_id).first

if existing_song

Refactored:

if Song.exists?(user_id: user_id, album_id: album_id)

3. Conditionals when object is nil

Original:

<%= event.end_date.nil? ? '' : event.end_date.to_s(:long) %>

Refactored:

<%= event.end_date.try(:to_s, :long) %>

4. Conditional assignment when object is nil

Original:

if !town
  town = user.town
end

Refactored:

town ||= user.town

5. Data migrations

Original, in a migration file:

group_ids.each_with_index do |id, position|
  group = Group.find(id)

  if group
    group.position = position
    group.save!
  end
end

Refactored:

group_ids.each_with_index do |id, position|
  update "update groups set position = #{position} where id = #{id}"
end

Visit Link 🔗