2011-10-24 83 views
2

说如果我做了一个简单的脚手架像rails g scaffold用户名:string。 我将如何通过控制器,并使数据为jsonp而不是jsonRails存储数据JSONP

回答

2

Rails 3中居然允许你在callback选项传递给render现在:

def index 
    render json: @users.to_json, callback: params[:callback] 
end 

这将是可在:

http://0.0.0.0:3000/users.json?callback=foobar 
0

编辑:请参阅阿什利威廉姆斯答案!

JSONP只是在函数调用中包装JSON对象。因此,像这样

UsersController:

def index 
    @callback_func_name = params[:callback] 
    @users = User.all 
end 

查看名为index.js.erb

<%= @callback_func_name %>(<%= @users.to_json %>) 

然后您发出请求:

http://localhost.com:3000/users.js?callback=myfunction 

的细节可能不完全正确,但是这应该会让你走到最后,让我知道你是否有任何问题纳秒。