अधिकांश रेल ट्यूटोरियल कैसे इतनी तरह पैरामीटर हैश के माध्यम से एक मॉडल वर्ग को भरने के लिए दिखा। हालांकि, क्या होता है यदि कुछ गुण इंक या तिथियां या किसी अन्य प्रकार के होते हैं?बनाना रेल ActiveRecord मॉडल
उदाहरण के लिए, मान लीजिए कि उपयोगकर्ता वर्ग इस
class User < ActiveRecord::Base
attr_accessible :email, :employment_start_date, :gross_monthly_income
end
की तरह लग रहा है: ईमेल विशेषता कोई स्ट्रिंग होना चाहिए,: employment_start_date विशेषता एक तारीख होना चाहिए, और: gross_monthly_income एक दशमलव होना चाहिए। इन विशेषताओं को सही प्रकार के होने के लिए, क्या मुझे इसके बजाय कुछ ऐसा देखने के लिए मेरी नियंत्रक कार्रवाई को बदलने की आवश्यकता है?
class User < ActiveRecord::Base
before_save :convert_values
#...
def convert_values
gross_monthly_income = convert_to_decimal(gross_monthly_income)
#and more conversions
end
end
तो तुम सिर्फ अपने नियंत्रक में User.new(params[:user])
कॉल कर सकते हैं,:
class UsersController < ApplicationController
def create
@user = User.new
@user.email = params[:user][:email]
@user.employment_start_date = params[:user][:employment_start_date].convert_to_date
@user.gross_monthly_income = params[:user][:gross_monthly_income].convert_to_decimal
# more logic for saving user/redirecting/etc.
end
end
क्या आप वाकई पैरा [: उपयोगकर्ता] में सभी तार होंगे? मुझे लगता है कि जब आप एआर के साथ इसका इस्तेमाल करते हैं तो परम हैश ठीक से परिवर्तित हो जाएगा। – rmk
@ आरएमके हाँ, आप सही हैं। मैंने मूल रूप से वही बात कहकर नीचे एक उत्तर जोड़ा। मैं इसे स्वीकार किए गए उत्तर के रूप में चिह्नित करूंगा, लेकिन मुझे स्वीकार्य उत्तर के रूप में अपना उत्तर चिह्नित करने से 2 दिन पहले इंतजार करना होगा। –