On Oct 25, 2012, at 4:32 PM, Jason Walsh wrote: > webber han wrote in post #1081214: >> Jason Walsh wrote in post #1080993: >>> Am having real probs trying to use Ajax with my Rails app. I have set up >>> a test as >>> >>> follows: >>> >>> in javascript file: >>> >>> window.onload = function() { >>> $('#test').bind('ajax:success', function() { >>> alert("success"); >>> }; >>> } >>> in view: >>> >>> <%= link_to "test", { :action => :getDiagram }, :remote => true, :id => >>> "test" %> >>> in controller: >>> >>> def getDiagram >>> >>> end >>> >>> Now I know this looks odd with the empty controller action, but I would >>> expect this code to just show a popup window with 'success' and leave >>> the current page loaded when the link is clicked? Instead i get the >>> missing template message like its trying to load a page synchronously >>> rather than using ajax? >>> >>> Can anyone get my test to work? Do I need to upgrade or add a gem file? >>> >>> Thanks in advance >>> >>> Jason >> >> What I have noticed is that >> 1. The javascript syntax is not correct >> 2. You didn't specify a controller from the link >> 3. It is probably make more sense to test with Json response using >> respond_to :json >> respond_with { :status => 'okay' } > > Thanks Webber > > 1. Noticed the missing bracket and fixed. > 2. Have set a route as follows: > match '/getdiagram', :to => 'prosesses#getDiagram' > It seems to be executing the right controller/action from the error > message i get > 3. Tried that but get: > c:/Users/Jason/rails_projects/procstor/app/controllers/prosesses_controller.rb:123: > > syntax error, unexpected tASSOC, expecting '}' > respond_with { :status => 'okay' } > ^
The parser sees this line as a method with a block and then the => is confusing (not allowed there, it isn't in a Hash) Either of these changes will do what you expect: respond_with({ :status => 'okay' }) # no longer looks like a block respond_with :status => 'okay' # must be a hash literal respond_with( :status => 'okay' ) # must be a hash literal Although the value for :status might need to be 'OK' or 200 rather than 'okay' and you need a respond_to in the controller. http://apidock.com/rails/ActionController/MimeResponds/respond_with -Rob -- 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 rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.