On 18 November 2011 17:05, Jim Ruther Nill <[email protected]> wrote:
>
>
> On Fri, Nov 18, 2011 at 8:25 PM, Mauro <[email protected]> wrote:
>>
>> On 18 November 2011 13:17, Jim Ruther Nill <[email protected]> wrote:
>> >
>> >
>> > On Fri, Nov 18, 2011 at 8:01 PM, Mauro <[email protected]> wrote:
>> >>
>> >> I want submit a form via ajax only if i have a new record, so I've set:
>> >> (I'm using simple_form)
>> >>
>> >> = simple_form_for @document, :html => { :multipart => true }, :remote
>> >> => @document.new_record? ? true : false, do |f|
>> >> = render 'shared/error_messages', :object => @document
>> >>
>> >> = field_set_tag t('document') do
>> >> .block
>> >> .column.span-24
>> >> .inputs
>> >> = f.input :name
>> >> = f.input :description
>> >> = f.input :doc, :as => :file
>> >> = f.input :company_id, :input_html => { :value =>
>> >> params[:company_id] }, :as => :hidden if @document.new_record?
>> >>
>> >> .actions
>> >> = f.button :submit
>> >>
>> >> It works if the validations are all ok but if a validation fails, I
>> >> correct the error and then submit again, remote is no longer valid
>> >> because, I think, new_record? return false.
>> >
>> > nope. if @document is not saved, then @document.new_record? should
>> > still return true. When you say you correct the error, you're
>> > submitting
>> > the
>> > same form right? without page reload since you're submitting via ajax so
>> > the form should still submit via ajax.
>>
>> I have strange behaviors.
>> As you see the form has remote => true if model is a new record.
>> But when I call submit the form is not submited via ajax.
>> The controller respond_to :js and I have new.js.erb and create.js.erb
>> files.
>> Perhaps the multipart create a problem?
>>
>
> I didn't read the code carefully but I think the :remote key-value pair
> should go inside the :html hash
> Let me know if that submits your form via ajax.
I've changed to:
= simple_form_for @document, :html => { :multipart => true, :remote =>
@document.new_record? ? true : false} do |f|
= render 'shared/error_messages', :object => @document
= field_set_tag t('document') do
.block
.column.span-24
.inputs
= f.input :name
= f.input :description
= f.input :doc, :as => :file
= f.input :company_id, :input_html => { :value =>
params[:company_id] }, :as => :hidden if @document.new_record?
.actions
= f.button :submit
but still doesn't work via ajax.
--
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.