rails Rules
3 rules found for rails
Early returns in Ruby
Use early returns to reduce nesting levels. Prefer checking error conditions or guard clauses first and returning early, rather than wrapping the main logic in deep conditional blocks. Bad `ruby def process_data(data) if data.present? if valid?(data) result = "" data.each do |item| if item.present? # More nested code here result += transform(item) end end { success: result } else { error: "invalid data" } end else { error: "empty data" } end end ` Good `ruby def process_data(data) return { error: "empty data" } if data.empty? return { error: "invalid data" } unless valid?(data) result = "" data.each do |item| next if item.blank? result += transform(item) end { success: result } end `
ruby
rails
External API error handling in Ruby
When making external API requests, implement proper error handling with descriptive logging to help with debugging issues. Bad: `ruby def fetch_external_data response = HTTParty.get("https://api.example.com/data") JSON.parse(response.body) end ` Good: `ruby def fetch_external_data response = HTTParty.get("https://api.example.com/data") if response.success? JSON.parse(response.body) else Rails.logger.error("API request failed: status=#{response.code}, message=#{response.message}, body=#{response.body}") nil end end `
ruby
rails
Avoid unnecessary else blocks in Ruby
Avoid unnecessary else blocks when the if block ends with a return statement, break, next, or similar control flow statements. Bad: `ruby def process_value(value) if value > 10 return "high" else return "low" end end ` `ruby def check_items(items) items.each do |item| if item.length > 5 puts "Long item: #{item}" next else puts "Short item: #{item}" end end end ` Good: `ruby def process_value(value) if value > 10 return "high" end "low" end ` `ruby def check_items(items) items.each do |item| if item.length > 5 puts "Long item: #{item}" next end puts "Short item: #{item}" end end `
ruby
rails