En Raylar öğreticiler şöyle params karma üzerinden bir modeli sınıfı doldurmak göstermektedir. Ancak, bazı özelliklerin ints veya tarih mi yoksa başka bir tür olması gerekiyorsa ne olur?oluşturma Raylar ActiveRecord modeli
Örneğin, en bu
class User < ActiveRecord::Base
attr_accessible :email, :employment_start_date, :gross_monthly_income
end
gibi Kullanıcı sınıfı görünüyor diyelim: E-posta özelliği, bir dizi olmalıdır: employment_start_date nitelik tarih olmalı ve: gross_monthly_income ondalık olmalıdır. Bu özniteliklerin doğru türden olması için, bunun gibi bir şeye bakmak için denetleyici eylemimi değiştirmem gerekir mi? ,
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
Yani sadece controller içerisinde User.new(params[:user])
çağırabilirsiniz:
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
Param [: kullanıcı] 'nın tüm dizelerine sahip olduğundan emin misiniz? Bence, AR ile kullandığınızda, parazitler karma doğru bir şekilde dönüştürülecektir. – rmk
@rmk Evet, haklısınız. Temel olarak aynı şeyi söyleyerek bir cevap ekledim. Kabul edilen cevap olarak işaretlerdim, ama cevabımı kabul edilen cevap olarak işaretlemeden önce 2 gün beklemem gerekiyor. –