ruby on rails - Model custom validation passing true even though it is not -
i'm confused this. model has following custom validation:
def custom_validation errors[:base] << "please select @ least 1 item" if @transactionparams.blank? end
basically it's checking make sure parameters belonging different model not blank.
def request_params @requestparams = params.require(:request).permit(:detail, :startdate, :enddate) @transactionparams = params["transaction"] @transactionparams = @transactionparams.first.reject { |k, v| (v == "0") || (v == "")} end
if it's not blank, happens record saved, , kinds of other things happen.
def create request_params @request = @user.requests.create(@requestparams) if @request.save ... else render 'new' end end
if record not saved, re-rendered new
view shows errors stopped @request
being created. problem whether or not @transactionparams.blank?
true or false, record fails save, , checked puts
in log.
what's happening? read through docs because thought maybe custom validators couldn't used on other variables... that's not case...
thanks!
ok read on related articles. it's bad practice ever access variable controller in model. that's why... if put puts
inspection in model not controller, @transactionparams
nil.
Comments
Post a Comment