我正在进行跨域调用ajax来从我的rails应用程序中获取一些数据。为此,我使用了一种很棒的方法,我发现它的功效就像一个魅力。但是,Rails不会将关联的关联呈现给它。因为我确实想要那些信息,我试图改变我的格式.js,但在格式化正确的输出时失败了。
这就是我现在在旅行中显示的方法(效果很好):
respond_to do |format|
format.html # show.html.erb
format.js { render_json @trip.to_json }
end
但我想渲染@ trip.triplocations。但我不知道怎么做。有谁知道这个吗?
以防万一,这是我发现的很棒的方法:
def render_json(json, options={})
callback, variable = params[:callback], params[:variable]
response = begin
if callback && variable
"var #{variable} = #{json};\n#{callback}(#{variable});"
elsif variable
"var #{variable} = #{json};"
elsif callback
"#{callback}(#{json});"
else
json
end
end
render({:content_type => :js, :text => response}.merge(options))
end
(道具转到:http://www.sitepoint.com/json-p-output-with-rails/)
提前致谢!
答案 0 :(得分:1)
(顺便说一下:你真的需要这个render_json方法吗?)
format.js {render :json=> @trip.as_json(:include => :triplocations)}
:include方法将包含关联。也适用于更高级别。 http://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html#method-i-as_json