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

});

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

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

You can read more about rendering JSON here:

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