Ruby on rails 一个Rails路由,通过不同的查询响应html和json
我的控制器中有一个简单的Ruby on rails 一个Rails路由,通过不同的查询响应html和json,ruby-on-rails,json,angularjs,Ruby On Rails,Json,Angularjs,我的控制器中有一个简单的索引操作,提供html和json格式 def index @records = Model.all respond_to do |format| format.html format.json { render json: @records } end end 我最近在AngularJS中重做了由JSON端点支持的HTML视图。我从日志中注意到,当加载此操作的HTML时,仍然会对HTML视图进行查询,尽管我已设置AngularJS在加载时从
索引
操作,提供html和json格式
def index
@records = Model.all
respond_to do |format|
format.html
format.json { render json: @records }
end
end
我最近在AngularJS中重做了由JSON端点支持的HTML视图。我从日志中注意到,当加载此操作的HTML时,仍然会对HTML视图进行查询,尽管我已设置AngularJS在加载时从JSON端点获取记录
我不确定最好的处理方法。如果我只是响应HTML,我希望能够不进行查询。最明显的方法是仅在格式为JSON时运行查询,但我觉得这不是最好的方法 你可以通过简单的操作来解决这个问题
def index
respond_to do |format|
format.html
format.json {
@records = Model.all
render json: @records
}
end
end
在Rails 3中,对模型调用
all
,点击数据库并检索结果。
在activerecord对象的Rails 3Model.all.class=Array[class]
中
如果只希望在视图中迭代集合时运行查询,请不要直接在模型类上调用.all
。您可以执行以下操作:
@records = Model.scoped
在您的视图中,当您需要显示收藏时:
<% @records.each do |record| %>
<%= record.inspect %>
<% end %>
在Rails 4中,all
返回一个ActiveRecord\u关系对象,并且在遍历集合之前不会访问数据库
更多信息,请访问: