如果不是,我該如何使它與我的AJAX請求符合JSONP?活動模型序列化器是否可以與JSONP協同工作?
編輯:看來我不清楚我想達到什麼目的。比方說,我有一個Post類,其中包含id,author,tags和content等屬性。現在加載ActiveModel如下::串行就是我會用代碼JSON響應:
class PostSerializer < ActiveModel::Serializer
attributes :id, :author, :tags, :content,
end
現在在控制器中,我會做一些像
render :json => @post
生成一個JSON文件看起來像這
{
"posts": [
{
"id": 1,
"author": "John Doe",
"tags": "test",
"content": "Hello world"
}
]
}
現在我在這裏的目標是使用JSONP,所以,當有人通過在請求一個jsoncallback參數(例如GET「/職位?jsoncallback = CALLBACK_FUNCTION」),我會能夠產生如下:
callback_function({
"posts": [
{
"id": 1,
"author": "John Doe",
"tags": "test",
"content": "Hello world"
}
]
})
目前我使用to_json一個帖子對象並將結果存儲到一個變量稱爲@posts_json,然後指定內容類型爲控制器文/ JavaScript和呈現出一個html.erb文件看起來像以下:
<% if params[:jsoncallback].blank? %>
<%= @posts_json.html_safe %>
<% else %>
<%= params[:jsoncallback] %>(<%= @posts_json.html_safe %>)
<% end %>
我敢肯定你會同意這個解決方案實在是太醜了,而問題是,它已經開始給我由於to_json方法問題我在控制器中使用。
因此,我想使用ActiveModel :: Serializer來獲得相同的功能。我該怎麼做?
讓我們看看一些代碼... – Severin
@Severin完成...我希望AMS有一個選項,我可以做類似'render json:@post,jsonp:callback_function' –