Rails - json.erb模板

bok*_*kor 3 api json ruby-on-rails ruby-on-rails-3

我一直试图找到一种方法来自定义带有特殊字段,自定义格式等的JSON.我已经在我的模型中创建了一个as_json和to_xml方法来制定我需要的对象.这很好用,但它很草率,因为我的一些辅助方法必须进入模型,因为我需要帮助器和模型中的格式.我也认为这是一个草率的代码,使模型失控.

我已经能够获得json.erb工作的格式,但不认为它的工作100%正确,并且回调也没有附加.任何人都可以这样做

这是我到目前为止所得到的.

api调用format.json

调用的模板是items.json.erb

<% @items.each do |item| %>
<%= { :item => { :id => item.id, :name => item.name }.to_json.html_safe  %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

这有效,但看起来很奇怪.有人有建议或有办法做到这一点?

顺便说一句这是为了回调工作

<%= params[:callback]+"(" if params[:callback]  %>
<% @items.each do |item| %>
    <%= { :item => { :id => item.id, :name => item.name }.to_json.html_safe  %>
<% end %>
<%= ")" if params[:callback]  %>
Run Code Online (Sandbox Code Playgroud)

pol*_*lau 7

我认为最好的方法是跳过erb模板,如果由于某种原因你不是绝对需要的话.然后你可以做这样的事情:

items = Item.all
render :json => items.to_json(:only => [:id, :name]), :callback => params[:callback]
Run Code Online (Sandbox Code Playgroud)

您可以覆盖to_json模型中的方法以添加字段或调用方法.