Я хочу отобразить индекс всех статей вместе с полной статьей через JSON в моем приложении rails, но у меня возникли небольшие проблемы с выяснением, как это сделать.
Вот мой контроллер сейчас:
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
Что я хотел бы сделать в ответе, так это добавить индекс всех статей, например:
@index = Article.find(:all, :select => 'id, title')
Единственный способ, которым я смог это сделать, - поместить индекс и статью в хеш или массив, а затем поместить это в JSON.
@response = { :item => @article, :index => @index }
Полный код с обоими:
@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
Это было бы хорошо, за исключением того, что теперь я не могу указать :include
или :except
и заставить его правильно отображаться.