Yea, remote_form_for seems like it might work, but Im just not sure
how to pass the javascript array with this.  Anyone have any idea?
This is what Im trying but it doesnt seem to work:

    <% remote_form_for :appointment, @appointment, :url => {:action =>
"array"}, :with => "'data='+test()" do |f|%>
       <%= submit_tag("submit") %>
    <% end %>

thanks

On Sep 19, 5:19 pm, "Pardee, Roy" <[EMAIL PROTECTED]> wrote:
> Hrmm--out of my depth here probably...  But it looks like you're not getting 
> an appointments hash in your params at all:
>
> {"authenticity_token"=>"d6f4591942661666d16d0a11e53b1436f9dca797",
> "action"=>"array", "controller"=>"appointments", "data"=>"10"}
>
> You're just getting a simple param called "data"--so if you said 
> "params[:data]" in your controller code you should get back a "10".  But this 
> is nothing you're going to be able to .build a whole appointment out of.  You 
> want that parameters hash to come back looking someething like this:
>
> {"authenticity_token"=>"d6f4591942661666d16d0a11e53b1436f9dca797",
> "action"=>"array", "controller"=>"appointments", 
> "appointment"=>{"field_one"=>"some value", "field_two"=>"some other value"}, 
> "data"=>"10"}
>
> I'm guessing you've got a whole form here for creating an appointment, and 
> you want all your inputs, plus this js-generated array of clicks?  If that's 
> it, and you really need to do ajax, have a look at remote_form_for.  That's 
> an ajaxy form-submitter.  But even then you're going to have to do something 
> special w/your "data" parameter--it's not going to come in as part of the 
> appointment hash the way you're passing it now.
>
> HTH,
>
> -Roy
>
> -----Original Message-----
> From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf 
> Of David
> Sent: Friday, September 19, 2008 4:52 PM
> To: Ruby on Rails: Talk
> Subject: [Rails] Re: Saving to the database using link_to_remote?
>
> The problem is that I don't think I can pass the javascript array with just 
> link_to, I think it needs to be a javascript request.  This is the call I am 
> using to save to the database:
>
> @appointment = logged_in_user.appointments.build(params[:appointment])
>      if @appointment.save
>        flash[:notice] = "Availability saved"
>     else
>        flash[:error] = "There was a problem creating the appointment."
>     end
>
> where params[:appointment] is the appropriate hash.  I know it is not saving 
> b/c it displays the error and nothing is changed in the actual database.
>
> This is the excerpt from the development.log:
>
> Processing AppointmentsController#array (for 127.0.0.1 at 2008-09-19
> 16:50:20) [POST]
>   Session ID:
> BAh7CDoMY3NyZl9pZCIlZWZjMGJlN2RkN2Y0YmNkNWM1OGJkOTUyMjA2MjJl
> %0AZjkiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOjpGbGFzaEhh
> %0Ac2h7BjoLbm90aWNlMAY6CkB1c2VkewY7B1Q6CXVzZXJpBg%3D
> %3D--364263bf2727a15d868a5e7438b049fccd17c21d
>   Parameters:
> {"authenticity_token"=>"d6f4591942661666d16d0a11e53b1436f9dca797",
> "action"=>"array", "controller"=>"appointments", "data"=>"10"} Asked for a 
> remote server ? true, ENV["FERRET_USE_LOCAL_INDEX"] is nil, looks like we are 
> not the server Will use local index.
> using index in C:/InstantRails-2.0-win/rails_apps/clean/index/
> development/user
> default field list: ["username", "has_photo"]
>    [4;35;1mUser Columns (0.004000) [0m    [0mSHOW FIELDS FROM
> `users` [0m
>    [4;36;1mUser Load (0.001000) [0m    [0;1mSELECT * FROM `users`
> WHERE (`users`.`id` = 1)  [0m
>    [4;35;1mAppointment Columns (0.004000) [0m    [0mSHOW FIELDS FROM
> `appointments` [0m
>    [4;36;1mSQL (0.000000) [0m    [0;1mBEGIN [0m
>    [4;35;1mSQL (0.000000) [0m    [0mCOMMIT [0m
> Rendering appointments/array
> Completed in 0.07400 (13 reqs/sec) | Rendering: 0.00700 (9%) | DB:
> 0.00900 (12%) | 200 OK [http://localhost/appointments/array]
>
> Thanks, Dave
>
> On Sep 19, 3:49 pm, "Pardee, Roy" <[EMAIL PROTECTED]> wrote:
> > I think if you want to redirect, you need to do a plain request--that is, 
> > drop the ajax & just do link_to.
>
> > But you should be able to save to the db from an ajax request.  What are 
> > you doing to save to the db & how do you know it's not working?  If there's 
> > an error, what is it?
>
> > -----Original Message-----
> > From: [email protected]
> > [mailto:[EMAIL PROTECTED] On Behalf Of David
> > Sent: Friday, September 19, 2008 3:19 PM
> > To: Ruby on Rails: Talk
> > Subject: [Rails] Saving to the database using link_to_remote?
>
> > I am attempting to save a javascript array that has collected clicks
> > from the user into the database using link_to_remote.  I am new to
> > ajax, so I do not know all the details but I have been told that in
> > order to get the javascript array from the client side to the server
> > side I must make an ajax request.  The ajax helper I am using is
> > link_to_remote:
>
> > <%= link_to_remote 'Click me', :url => {:action => "array"}, :with =>
> > "'data='+test()"%>
>
> > This works up until trying to save the array to the database.  It
> > passes the array, which is the result of the javascript function
> > test() to the action array and I am able to convert to ruby.  However,
> > I am unable to save anything to the database, or redirect to any other
> > action.  I am wondering, firstly, Is link_to_remote even the
> > appropriate ajax helper, and if so, How can I save this information to
> > the database in the array action as seen above?  Thanks, Dave
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to