Rails хранит данные JSONP - PullRequest
       20

Rails хранит данные JSONP

2 голосов
/ 24 октября 2011

Скажите, если бы я сделал простой эшафот, например, rails g scaffold user name: string. Как бы мне пройти через контроллер и сделать данные как jsonp, а не json

Ответы [ 2 ]

2 голосов
/ 24 октября 2011

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 голосов
/ 24 октября 2011

РЕДАКТИРОВАТЬ: См. Ответ Эшли Уильямс!

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

Детали могут быть не совсем точными, но это поможет вам пройти большую часть пути, дайте мне знать, если у вас есть какие-либо вопросы.

...