Tôi đang tìm cách hiển thị chỉ mục của tất cả các bài báo cùng với một bài viết đầy đủ thông qua JSON trong ứng dụng đường ray của tôi, nhưng tôi đang gặp một chút khó khăn trong việc tìm ra cách thực hiện.Ruby on Rails Nâng cao JSON Serialization
Đây là bộ điều khiển của tôi bây giờ:
if params[:id]
@article = Article.find(params[:id])
else
@article = Article.published.not_draft.by_recent.first
end
respond_to do |format|
format.js { render :json => @article.to_json(
:except => [ :created_at, :updated_at, :draft, :id, :publish ],
:include => {
:comments => {
:only => [:body]
}
}),
:callback => params[:callback]}
end
Những gì tôi muốn làm trong các phản ứng là thêm một chỉ số của tất cả các bài viết, như vậy:
@index = Article.find(:all, :select => 'id, title')
Cách duy nhất tôi đã có thể làm điều đó, được đặt cả chỉ mục và bài viết vào một băm hoặc mảng và sau đó đặt nó vào JSON.
@response = { :item => @article, :index => @index }
Toàn mã với cả hai:
@index = Article.find(:all, :select => 'id, title')
if params[:id]
@article = Article.find(params[:id])
else
@article = Article.published.not_draft.by_recent.first
end
@response = { :item => @article, :index => @index }
respond_to do |format|
format.js { render :json => @response.to_json(), :callback => params[:callback]}
end
Đây sẽ là tốt, ngoại trừ bây giờ tôi không thể xác định :include
hay :except
và làm cho nó hiển thị chính xác.