aris
1
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: