मैं एक और उदाहरण दूंगा जिसका मैंने उपयोग किया है। मेरे पास एक तरीका user_params है जो उपयोगकर्ता के लिए सहेजने के लिए आवश्यक पैरामेट्स लौटाता है (यह एक रेल परियोजना है)
def user_params
params.require(:user).permit(
:first_name,
:last_name,
:email,
:address_attributes
)
end
आप देख सकते हैं कि मैं कुछ भी नहीं लौटा सकता हूँ, लेकिन माणिक अंतिम पंक्ति का आउटपुट लौटा सकता है।
फिर, कुछ समय बाद, मुझे सशर्त रूप से एक नई विशेषता जोड़ने की आवश्यकता थी। तो, मैंने इसे कुछ इस तरह से बदल दिया:
def user_params
u_params = params.require(:user).permit(
:first_name,
:last_name,
:email,
:address_attributes
)
u_params[:time_zone] = address_timezone if u_params[:address_attributes]
u_params
end
यहां हम स्थानीय वैरिएबल को हटाने और रिटर्न को हटाने के लिए टैप का उपयोग कर सकते हैं:
def user_params
params.require(:user).permit(
:first_name,
:last_name,
:email,
:address_attributes
).tap do |u_params|
u_params[:time_zone] = address_timezone if u_params[:address_attributes]
end
end
User.new.tap &:foobar