Return JSON in AJAX

hello guys, I’m trying to make a ajax request and return some data from
my controller, but how I do it to call the JSON in my JS after the
request ?

controller task

def create

@task = Task.create( :project_id => params[ :project_id ], :name =>

params[ :task ] )

if @task.valid?
  @return = { :task => @task.name, :project_id => @task.project_id }
else
  @return = { :error => "Ocorreu um erro inesperado. Tente

novamente." }
end

return ActiveSupport::JSON.encode( @return )

end

view index - JS

$( “#tasks_form” ).submit( function( e ) {

      e.preventDefault();
      var task = $( this).find( "textarea" ).val();

      $.post( "<%= url_for :controller => :task, :action => :create

%>", { task: task, project_id: <%= @project_id %> }, function( e ) {

      }, "json");

  } );

Thank you

Try using basic jquery ajax call i.e.

$.ajax({
url : “your_url”
// JSON data
}).done(function(response) {
// here response will have JSON returned by task#create
});

пятница, 15 июня 2012 г., 1:45:07 UTC+3 пользователь Ruby-Forum.com User
написал:

Thank you guys for the answer, but I just did this:

render :json => ActiveSupport::JSON.encode( @return )

Check here: http://api.jquery.com/jQuery.post/

There’s an example titled “Example: Posts to the test.php page and gets
contents which has been returned in json format” about half way down the
page.

You can also use respond_with method and change your
render :json => ActiveSupport::JSON.encode( @return )
to
respond_with @return

But for using this, you have to specify responds_to :json in controller

, 17 2012 ., 21:17:32 UTC+3 Ruby-Forum.com
User :

You can read more about rendering JSON here:

Den sndagen den 17:e juni 2012 kl. 20:17:32 UTC+2 skrev Ruby-Forum.com
User: