Ya I know, but I am getting this,
ActiveRecord::MultiparameterAssignmentErrors (1 error(s) on assignment of
multiparameter attributes): with just the TourType.new for my time select,
which is totally separate error from the validations.
On Friday, February 25, 2011 10:59:18 PM UTC-6, bacrossland wrote:
>
> You're better off handling the validations in the Model. Since these are
> all ActiveRecord errors you are getting.
>
> If you want to validate in the controller before passing to the model you
> have to write code that will check for each thing you are looking to
> validate (is it there?, does it fit the format you want?, etc.) before you
> pass it to the model. This can be a lot of code and a hassle to maintain. I
> would highly recommend that you just add a validates_presence_of
> :usual_price_number in your model and in your controller do something like
> the following to start:
>
> def create
> @tour_type = TourType.new(params[:tour_type])
>
> respond_to do |format|
> if @tour_type.save
> flash[:success] = 'Tour was successfully created.'
> format.html {redirect_to(@tour_type)}
> format.xml { render :xml => @tour_type, :status => :created,
> :location => @tour_type }
> else
> format.html { render :action => "new" }
> format.xml { render :xml => @tour_type.errors, :status =>
> :unprocessable_entity }
> end
> end
> end
>
> You can customize the error messages for your validates_presence_of and add
> additional validation types. See Rails documentation for more info.
>
>
> http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html
>
> B.
>
> On Fri, Feb 25, 2011 at 10:41 PM, Me <[email protected]> wrote:
>
>> Yes it is in the controller, I will move it when I get it working. How do
>> I get validations on both?
>>
>>
>> On Friday, February 25, 2011 10:32:54 PM UTC-6, bacrossland wrote:
>>
>>> Because that is the top most error. The others are ignored until that
>>> error is fixed.
>>>
>>> What are you trying to achieve with this error handling? It looks like
>>> you are looking to do validation on the information that is passed in. This
>>> code also looks like it is your controller. Is that correct?
>>>
>>> B.
>>>
>>> On Fri, Feb 25, 2011 at 10:27 PM, Me <[email protected]> wrote:
>>>
>>>> It is only catching the first rescue one when I know other validations
>>>> are failing.
>>>>
>>>>
>>>> On Friday, February 25, 2011 10:20:35 PM UTC-6, bacrossland wrote:
>>>>
>>>>> It looks fine but you have to run it to make sure it catches what you
>>>>> want it too.
>>>>>
>>>>> B.
>>>>>
>>>>> On Fri, Feb 25, 2011 at 9:45 PM, Me <[email protected]> wrote:
>>>>>
>>>>>> So is this the correct way:
>>>>>>
>>>>>> def create
>>>>>> bad =[]
>>>>>> begin
>>>>>>
>>>>>> @tour_type = TourType.new(params[:tour_type])
>>>>>> if @tour_type.save
>>>>>> render :update do |page|
>>>>>> page << "Redbox.close;"
>>>>>> page.call "ProtoGrowl.success", "Succesfully created #{@
>>>>>> tour_type.name}"
>>>>>> end
>>>>>> end
>>>>>> rescue ActiveRecord::MultiparameterAssignmentErrors
>>>>>> if params[:tour_type][:usual_price_number].blank?
>>>>>> bad << "Usual price must not be 0.00"
>>>>>> end
>>>>>>
>>>>>>
>>>>>> rescue ActiveRecord::RecordInvalid
>>>>>> bad << "#...@tour_type.errors.full_messages}"
>>>>>>
>>>>>> end
>>>>>>
>>>>>> unless bad.empty?
>>>>>> flash.now[:error] = "#{bad.length} Errors have occured in this
>>>>>> form"
>>>>>> flash.now[:items] = bad
>>>>>> render :update do |page|
>>>>>> page[:flash].replace_html :partial => 'shared/flash_box' and
>>>>>> return
>>>>>> end
>>>>>> end
>>>>>> end
>>>>>>
>>>>>> On Friday, February 25, 2011 9:37:05 PM UTC-6, bacrossland wrote:
>>>>>>
>>>>>>> That is because you did not setup your error handling correctly. A
>>>>>>> rescue block is done within a begin and end. You don't have that. You
>>>>>>> have
>>>>>>> rescues just tossed into your code. The format should look something
>>>>>>> like
>>>>>>> this:
>>>>>>>
>>>>>>> begin
>>>>>>> puts 10/0 #Bad code which will throw a ZeroDivisionError
>>>>>>> rescue ZeroDivisionError
>>>>>>> puts "Stop dividing by zero or the universe will end!"
>>>>>>> end
>>>>>>>
>>>>>>> See the docs on error handling for more information.
>>>>>>>
>>>>>>> http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_exceptions.html
>>>>>>>
>>>>>>> Thanks,
>>>>>>> B.
>>>>>>>
>>>>>>> On Fri, Feb 25, 2011 at 9:17 PM, Me <[email protected]> wrote:
>>>>>>>
>>>>>>>> I have this code below, it still gives me the error,
>>>>>>>> ActiveRecord::MultiparameterAssignmentErrors. It is not catching the
>>>>>>>> rescue
>>>>>>>> for some reason. Ideas?
>>>>>>>>
>>>>>>>> def create
>>>>>>>> bad =[]
>>>>>>>> @tour_type = TourType.new(params[:tour_type])
>>>>>>>> if @tour_type.save
>>>>>>>> render :update do |page|
>>>>>>>> page << "Redbox.close;"
>>>>>>>> page.call "ProtoGrowl.success", "Succesfully created #{@
>>>>>>>> tour_type.name}"
>>>>>>>> end
>>>>>>>> end
>>>>>>>> rescue ActiveRecord::MultiparameterAssignmentErrors
>>>>>>>> if params[:tour_type][:usual_price_number].blank?
>>>>>>>> bad << "Usual price must not be 0.00"
>>>>>>>> end
>>>>>>>>
>>>>>>>> rescue ActiveRecord::RecordInvalid
>>>>>>>> bad << "#...@tour_type.errors.full_messages}"
>>>>>>>>
>>>>>>>> unless bad.empty?
>>>>>>>> flash.now[:error] = "#{bad.length} Errors have occured in this
>>>>>>>> form"
>>>>>>>> flash.now[:items] = bad
>>>>>>>> render :update do |page|
>>>>>>>> page[:flash].replace_html :partial => 'shared/flash_box' and
>>>>>>>> return
>>>>>>>> end
>>>>>>>> end
>>>>>>>> end
>>>>>>>>
>>>>>>>> --
>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>> Groups "Ruby on Rails: Talk" group.
>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>> To unsubscribe from this group, send email to
>>>>>>>> [email protected].
>>>>>>>>
>>>>>>>> For more options, visit this group at
>>>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Ruby on Rails: Talk" group.
>>>>>> To post to this group, send email to [email protected].
>>>>>> To unsubscribe from this group, send email to
>>>>>> [email protected].
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>>>>>
>>>>>
>>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Ruby on Rails: Talk" group.
>>>> To post to this group, send email to [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected].
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>>>
>>>
>>> --
>> You received this message because you are subscribed to the Google Groups
>> "Ruby on Rails: Talk" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>
>
>
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.